alarmmanager的使用機制有的稱呼為全域性定時器,有的稱呼為鬧鐘。通過對它的使用,個人覺得叫全域性定時器比較合適,其實它的作用和timer有點相似。都有兩種相似的用法:(1)在指定時長後執行某項操作(2)週期性的執行某項操作
alarmmanager物件配合intent使用,可以定時的開啟乙個activity,傳送乙個broadcast,或者開啟乙個service.
//操作:傳送乙個廣播,廣播接收後toast提示定時操作完成
intent intent =new intent(main.this, alarmreceiver.class);
intent.setaction("short");
pendingintent sender=
pendingintent.getbroadcast(main.this, 0, intent, 0);
//設定乙個五秒後的時間
calendar calendar=calendar.getinstance();
calendar.settimeinmillis(system.currenttimemillis());
calendar.add(calendar.second, 5);
alarmmanager alarm=(alarmmanager)getsystemservice(alarm_service);
alarm.set(alarmmanager.rtc_wakeup, calendar.gettimeinmillis(), sender);
//或者以下面方式簡化
system.currenttimemillis()+5*1000, sender);
(2)週期性的執行某項操作
intent intent =new intent(main.this, alarmreceiver.class);
intent.setaction("repeating");
pendingintent sender=pendingintent
.getbroadcast(main.this, 0, intent, 0);
//開始時間
long firstime=systemclock.elapsedrealtime();
alarmmanager am=(alarmmanager)getsystemservice(alarm_service);
//5秒乙個週期,不停的傳送廣播
am.setrepeating(alarmmanager.elapsed_realtime_wakeup
, firstime, 5*1000, sender);
alarmmanager的setrepeating()相當於timer的schedule(task,delay,peroid);
(3)取消週期性任務
intent i = new intent();
i.setclass(this, pushservice.class);
i.setaction(action_keepalive);
pendingintent pi = pendingintent.getservice(this, 0, i, 0);
alarmmanager alarmmgr = (alarmmanager) getsystemservice(alarm_service);
alarmmgr.cancel(pi);
AlarmManager類的應用(實現鬧鐘功能)
1 alarmmanager,顧名思義,就是 提醒 是android中常用的一種系統級別的提示服務,可以實現從指定時間開始,以乙個固定的間隔時間執行某項操作,所以常常與廣播 broadcast 連用,實現鬧鐘等提示功能 2 alarmmanager的常用方法有三個 1 set int type,lo...
使用AlarmManager實現精確定時任務
最近實現了乙個小專案 定時執行任務。專案位址 坑 執行時間不准甚至不執行。各種查資料,無果 可能是搜商不夠 最終實現 將寫的應用加入手機的白名單或新增為保護程式 不同的手機有不同的叫法 允許程式鎖屏後能執行。實現思路 使用pendingintent.getbroadcast 實現到指定時間傳送廣播,...
AlarmManager延遲生效
alarmmanager這個類提供對系統鬧鐘服務的訪問介面。你可以為你的應用設定乙個在未來某個時間喚醒的功能。當鬧鐘響起,實際上是系統發出了為這個鬧鐘註冊的廣播,會自動開啟目標應用。註冊的鬧鐘在裝置睡眠的時候仍然會保留,可以選擇性地設定是否喚醒裝置,但是當裝置關機和重啟後,鬧鐘將會被清除。在alar...