1. 程式人生 > >如何判斷一個alarm是否已經被建立

如何判斷一個alarm是否已經被建立

首先是建立一個重複的Alarm:

long nextMillis  = System.currentTimeMillis() + 1000;

AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);  

Intent intent = new Intent(context, CoreService.class);  
intent.setAction(CoreService.ACTION_SLIENCE_ALARM_BACK);
PendingIntent pendIntent = PendingIntent.getService(context,0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, nextMillis, 1000, pendIntent);

然後如果出現多個地方可能會去設定這個alarm的時候,去判斷下這個alarm的pendingintent是否已經被建立,來判斷是否需要再次來設定這個alarm(ps:有的手機在你設定同一個alarm的時候覆蓋設定會有個系統toast)。

boolean alarmUp= (PendingIntent.getBroadcast(context.getApplicationContext(), 1,intent, PendingIntent.FLAG_NO_CREATE) != null);
這個就是來判斷這個alarm 的pendingintent是否被建立。這個是不能用來判斷這個alarm是被cancel過還是被set過的。

FLAG_NO_CREAT能用來處理這個的原因

The key here is the FLAG_NO_CREATE which as described in the javadoc: if the described PendingIntent **does not** already exists, then simply return null (instead of creating a new one)

相關推薦

如何判斷一個alarm是否已經建立

首先是建立一個重複的Alarm: long nextMillis  = System.currentTimeMillis() + 1000; AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Co

判斷一個整數是否能11整除

如果一個整數在整型範圍內,直接用求餘符號就能搞定,但是如果這個整數比較大就要另尋他路了。        有一種演算法叫做“奇偶位差法”,意思就是在奇數位上的數字和與偶數位上的數字和做差,如果這個差的絕對值能被11整除,那麼這個數字就可以被11整除。 #include<

如何在一個類的例項建立時呼叫它的內部方法!!!

package test; public class A {/** 靜態方法* 在該類被初始化的時候,被編譯好* 但是初始化該類時不會被呼叫即輸出“wo shi A”*/static void test(){System.out.println("wo shi A中的tes

sqlite3如何判斷一個表是否已經存在於資料庫中c++

網上找了很多,都不能使用,無奈自己不是專門搞資料庫的,不過最終在某個回撥函式帖的啟示下,自己修改了一下程式碼,終於可以使用了。 實在是沒有想到這麼簡單的一個問題困擾了那麼多人,這裡分享一下程式碼,也感謝原作者(忘記地方了)對我的啟示。 int sqlite3_callbac

判斷一個整數是否能3或5整除

/* * Copyright (c) 2015, CSDN學院 * All rights reserved. * 檔名稱:re.c * 作 者:劉樹 * 完成日期:2015年 4 月 16 日 * 版 本 號:v1.0 * * 問題描述:輸入一個數,判斷它能否被3或者

習題4 編寫一個方法method(),判斷一個數能否同時3和5整除

true ati rgs 同時 [] 返回 運算符 pri void 編寫一個方法method(),判斷一個數能否同時被3和5整除 首先編寫一個方法method(),由於是判斷,所以返回的數據類型應是波爾型,並且向主方法傳一個整數類型的參數X public class Z

Go語言如何判斷一個chan關閉

var clas imp pac light bool post main lose 當一個chanel被關閉後,再取出不會阻塞,而是返回零值 package main import "fmt" func main() { c := make(chan int

判斷一個字串是否Base64加密

例如: 字串:RGFqaURhbGlfSmlud2FuQ2hpamk= 首先要知道什麼是Base64加密?就是Base64是怎麼加密的? Base64編碼是從二進位制到字元的過程,可用於在HTTP環境下傳遞較長的標識資訊   至於Base64是怎麼加密的? 看一個簡單的例子: 轉前

判斷一個字符串是否Base64加密

pan nbsp 計算 沒有 http 加密 tar com ech 例如: 字符串:RGFqaURhbGlfSmlud2FuQ2hpamk= 首先要知道什麽是Base64加密?就是Base64是怎麽加密的? Base64編碼是從二進制到字符的過程,可用於在HTTP環境下傳

Shell指令碼 判斷使用者和使用者組是否已經存在/建立使用者和使用者組

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

判斷一個數是否能一個整數整除是一個挺簡單的問題,一般一個模運算就可以搞定了,懶惰的曉萌還是不想自己做,於是找到你幫他寫程式碼,你就幫幫他吧。

判斷一個數是否能被另一個整數整除是一個挺簡單的問題,一般一個模運算就可以搞定了,懶惰的曉萌還是不想自己做,於是找到你幫他寫程式碼,你就幫幫他吧。 輸入格式 輸入包括兩個由空格分開的整數 M 和N(1≤M,N≤500)。 輸出格式 輸出包括一行,如果 M 可以被 N 整除就

Java 自動判斷配置檔案是否已經存在,如果不存在自動建立,如果存在直接讀寫

try {     pro.load(new BufferedInputStream(new FileInputStream("config.ini"))); } catch (FileNotFoundException e) {     pro.put("GuestDefaultFloor", "10");

垃圾回收之判斷物件需要回收(根搜尋演算法和引用搜索演算法)

根搜尋演算法(JAVA的虛擬機器用的是這個) 可以參考這個 http://blog.csdn.net/qq_15022971/article/details/79162126 引用搜索演算法:是常被初學JAVA者誤解,java的垃圾回收在判斷一個物件是否為可以被回收的物件時,常被誤以為

GC是如何判斷一個物件為"垃圾"的?GC判斷為"垃圾"的物件一定會回收嗎?

一.GC如何判斷一個物件為”垃圾”的 java堆記憶體中存放著幾乎所有的物件例項,垃圾收集器在對堆進行回收前,第一件事情就是要確定這些物件之中哪些還“存活”著,哪些已經“死去”。那麼GC具體通過什麼手段來判斷一個物件已經”死去”的? 1.引用計數演算法(已被

[計蒜客] Python 判斷一個數是否能一個整數整除是一個挺簡單的問題

問題描述: 判斷一個數是否能被另一個整數整除是一個挺簡單的問題,一般一個模運算就可以搞定了,懶惰的曉萌還是不想自己做,於是找到你幫他寫程式碼,你就幫幫他吧。 輸入格式: 輸入包括兩個由空格分開的整數 MMM 和 N(1≤M,N≤500)N(1\leq M,

判斷ACTIIVTY是否已經銷燬

  一般會遇到這樣的情況:在一個Activity中啟動一個非同步任務,非同步任務中需要返回值,然後被Activity使用,但是當非同步任務還未結束時,按下home鍵,如果這個時候系統記憶體比較緊張,這個Activity有可能被銷燬(如果使用小米手機進行真機除錯,可以在開發者選項中開啟不保留活動選項),這個時

Repeater 的ItemCreated事件觸發的時侯,即為一個模板建立的時候

  <%@ Page Language="C#" AutoEventWireup="True" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://ww

如何判斷一個form是否關閉

如果在form1中有一個變數f2,該變數指向一個form2的例項。當在form1中使用f2.show()方法時,顯示form2的視窗。但是當form2視窗被使用者關閉時,在form1中仍然存在f2指向一個form2的那個例項,即f2不會變為指向null,即使form2已經被關

如何判斷一個SOCKET連線是否已經斷開

1. 根據ERRNO和recv結果進行判斷 在UNIX/Linux下,非阻塞模式SOCKET可以採用recv+MSG_PEEK的方式進行判斷,其中MSG_PEEK保證了僅僅進行狀態判斷,而不影響資料接收 對於主動關閉的SOCKET, recv返回-1,而且errno被置為9(#define EBADF 

C語言實現判斷一個整數可3 5 7中哪些數字整除

題目來源:大工慕課 連結 作者:Caleb Sung 注意事項 重點在於if, else if, else的巢狀與混合使用,因而寫法其實並不固定,達成設計目的即可。 解答示範