Android鬧鐘服務AlarmManager

獲取服務

AlarmManager mAlarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

設置鬧鐘

Android4.4以上

方法聲明:

public void setWindow(int type, long windowStartMillis, long windowLengthMillis, PendingIntent operation)

/*
int type:鬧鐘的類型,常用的有5個值:
AlarmManager.ELAPSED_REALTIME:表示鬧鐘在手機睡眠狀態(tài)下不可用,該狀態(tài)下鬧鐘使用相對時間(相對于系統(tǒng)啟動開始),狀態(tài)值為3;
AlarmManager.ELAPSED_REALTIME_WAKEUP:表示鬧鐘在睡眠狀態(tài)下會喚醒系統(tǒng)并執(zhí)行提示功能,該狀態(tài)下鬧鐘也使用相對時間扼睬,狀態(tài)值為2;
AlarmManager.RTC:表示鬧鐘在睡眠狀態(tài)下不可用悴势,該狀態(tài)下鬧鐘使用絕對時間窗宇,即當前系統(tǒng)時間,狀態(tài)值為1特纤;
AlarmManager.RTC_WAKEUP:表示鬧鐘在睡眠狀態(tài)下會喚醒系統(tǒng)并執(zhí)行提示功能军俊,該狀態(tài)下鬧鐘使用絕對時間,狀態(tài)值為0捧存;
AlarmManager.POWER_OFF_WAKEUP:表示鬧鐘在手機關機狀態(tài)下也能正常進行提示功能蝇完,所以是5個狀態(tài)中用的最多的狀態(tài)之一官硝,該狀態(tài)下鬧鐘也是用絕對時間,狀態(tài)值為4短蜕;不過本狀態(tài)好像受SDK版本影響氢架,某些版本并不支持;

long windowStartMillis:
鬧鐘的開始時間

long windowLengthMillis:
鬧鐘窗口時長

PendingIntent operation:
需要執(zhí)行的操作
*/

示例:

//設置一個10分鐘后執(zhí)行的鬧鐘朋魔,此方法只設置一次
mAlarmManager.setWindow(AlarmManager.RTC_WAKEUP,
                    System.currentTimeMillis() + 10 * minuteMills,
                    2 * minuteMills,
                    yourPendingIntent;

注意:如果設置的起始時間小于當前時間岖研,鬧鐘將會馬上被觸發(fā)。如果觸發(fā)的事件里面又設置了一次鬧鐘(相當于遞歸)警检,就會進入死循環(huán)孙援。

Android4.4以下:

方法聲明:

//注冊一個新的鬧鈴
set(int type, long triggerAtMillis, PendingIntent operation)

//注冊一個新的鬧鈴,這個鬧鈴將在指定的時間被準確的執(zhí)行
setExact(int type, long triggerAtMillis, PendingIntent operation)

//注冊一個對觸發(fā)時間并不是很精準的鬧鈴扇雕,例如拓售,一個鬧鈴每小時都會重復,但不一定都是在每個小時的最開始被觸發(fā)
//triggerAtMillis為鬧鐘首次執(zhí)行時間镶奉,intervalMillis為鬧鐘兩次執(zhí)行的時間間隔
setInexactRepeating(int type, long triggerAtMillis, long intervalMillis, PendingIntent operation)

//注冊一個重復類型的鬧鈴
setRepeating(int type, long triggerAtMillis, long intervalMillis, PendingIntent operation)

//設定系統(tǒng)時鐘時間
setTime(long millis)

//設置系統(tǒng)默認時區(qū)
setTimeZone(String timeZone)

示例:

//設置單次鬧鐘
mAlarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + minuteMills, yourPendingIntent);

//設置重復鬧鐘
mAlarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP,
                    System.currentTimeMillis() + minuteMills,
                    10 * minuteMills,
                    yourPendingIntent);

取消鬧鐘

//取消參數(shù)匹配的鬧鈴
mAlarmManager.cancel(yourPendingIntent);

鬧鐘為系統(tǒng)級別的一種通知础淤,可以不依賴于應用的存活為條件,因此也可以用于應用掛掉后定時重啟應用等場景哨苛。

//定時重啟
Intent intent = getPackageManager().getLaunchIntentForPackage(getPackageName());
PendingIntent restartIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, 0);
AlarmManager mgr = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 500, restartIntent); // 定時重啟應用
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸽凶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子建峭,更是在濱河造成了極大的恐慌玻侥,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亿蒸,死亡現(xiàn)場離奇詭異凑兰,居然都是意外死亡,警方通過查閱死者的電腦和手機边锁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門姑食,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人砚蓬,你說我怎么就攤上這事矢门∨枭” “怎么了灰蛙?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長隔躲。 經(jīng)常有香客問我摩梧,道長,這世上最難降的妖魔是什么宣旱? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任仅父,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘笙纤。我一直安慰自己耗溜,他們只是感情好,可當我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布省容。 她就那樣靜靜地躺著抖拴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪腥椒。 梳的紋絲不亂的頭發(fā)上阿宅,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天,我揣著相機與錄音笼蛛,去河邊找鬼洒放。 笑死,一個胖子當著我的面吹牛滨砍,可吹牛的內(nèi)容都是我干的往湿。 我是一名探鬼主播,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼惨好,長吁一口氣:“原來是場噩夢啊……” “哼煌茴!你這毒婦竟也來了?” 一聲冷哼從身側響起日川,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤蔓腐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后龄句,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體回论,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年分歇,在試婚紗的時候發(fā)現(xiàn)自己被綠了傀蓉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡职抡,死狀恐怖葬燎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缚甩,我是刑警寧澤谱净,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站擅威,受9級特大地震影響壕探,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜郊丛,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一李请、第九天 我趴在偏房一處隱蔽的房頂上張望瞧筛。 院中可真熱鬧,春花似錦导盅、人聲如沸较幌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绅络。三九已至,卻和暖如春嘁字,著一層夾襖步出監(jiān)牢的瞬間恩急,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工纪蜒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留衷恭,地道東北人。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓纯续,卻偏偏與公主長得像随珠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子猬错,可洞房花燭夜當晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理窗看,服務發(fā)現(xiàn),斷路器倦炒,智...
    卡卡羅2017閱讀 134,716評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,328評論 25 707
  • 我喜歡買書显沈,知道讀書可以讀懂很多人生遇到的難題,但是過去的我讀后很快就忘記逢唤,讀了感受不深拉讯,也沒養(yǎng)成每天讀書的習慣,...
    雪23閱讀 124評論 0 0
  • 答應了給朋友幫忙鳖藕,第一天魔慷。感覺蠻好玩的……忙碌的夜晚,好充實著恩。平時天天熬夜院尔,也沒覺得累,今天也沒干啥累活喉誊,回來...
    逃避現(xiàn)實閱讀 103評論 0 0
  • 很久前就聽說過這本飽受贊譽的書邀摆,對它的期望也一直很高。按常理來講裹驰,期望越高隧熙,失望越高片挂。但即使是這樣幻林,它還是給人以足...
    一只瓦罐閱讀 1,058評論 0 51