Android 如何讓程式定時進行訊息通知到通知欄

2021-07-13 19:19:35 字數 1772 閱讀 5612

實現定時推送資訊到通知欄

mainactivity.class

public class mainactivity extends activity 

}

alarmmanager的常用方法有三個:

(1)set(int type,long starttime,pendingintent pi);

該方法用於設定一次性鬧鐘,第乙個引數表示鬧鐘型別,第二個引數表示鬧鐘執行時間,第三個引數表示鬧鐘響應動作。

(2)setrepeating(int type,long starttime,long intervaltime,pendingintent pi);

該方法用於設定重複鬧鐘,第乙個引數表示鬧鐘型別,第二個引數表示鬧鐘首次執行時間,第三個引數表示鬧鐘兩次執行的間隔時間,第四個引數表示鬧鐘響應動作。

(3)setinexactrepeating(int type,long starttime,long intervaltime,pendingintent pi);

該方法也用於設定重複鬧鐘,與第二個方法相似,不過其兩個鬧鐘執行的間隔時間不是固定的而已。從長遠來看,執行的頻率將正好是指定週期的倒數。

第乙個引數是乙個整型引數,用於指定alarmmanager 的工作型別,有四種值可選,分別是elapsed_realtime、elapsed_realtime_wakeup、rtc 和rtc_wakeup。其中elapsed_realtime 表示讓定時任務的觸發時間從系統開機開始算起,但不會喚醒cpu。elapsed_realtime_wakeup 同樣表示讓定時任務的觸發時間從系統開機開始算起,但會喚醒cpu。rtc 表示讓定時任務的觸發時間從1970 年1月1 日0 點開始算起,但不會喚醒cpu。rtc_wakeup 同樣表示讓定時任務的觸發時間從1970 年1 月1 日0 點開始算起,但會喚醒cpu。使用systemclock.elapsedrealtime()方法可以獲取到系統開機至今所經歷時間的毫秒數,使用system.currenttimemillis()方法可以獲取到1970 年1 月1 日0 點至今所經歷時間的毫秒數。

然後看一下第二個引數,這個引數就好理解多了,就是定時任務觸發的時間,以毫秒為單位。如果第乙個引數使用的是elapsed_realtime 或elapsed_realtime_wakeup,則這裡傳入開機至今的時間再加上延遲執行的時間。如果第乙個引數使用的是rtc 或rtc_wakeup,則這裡傳入1970 年1 月1 日0 點至今的時間再加上延遲執行的時間。

第三個引數是乙個pendingintent,對於它你應該已經不會陌生了吧。這裡我們一般會呼叫getbroadcast()方法來獲取乙個能夠執行廣播的pendingintent。這樣當定時任務被觸發的時候,廣播接收器的onreceive()方法就可以得到執行。了解了set()方法的每個引數之後,設定乙個任務在10 秒鐘後執行還可以寫成:

long triggerattime = system.currenttimemillis() + 10 * 1000;

manager.set(alarmmanager.rtc_wakeup, triggerattime, pendingintent);

autoreceiver.class

public class autoreceiver extends broadcastreceiver 

}}

androidmanifest.xml

<?xml version="1.0" encoding="utf-8"?>

如何把應用程式編譯進android系統

把常用的應用程式編譯到img檔案中,就成了系統的一部分,使用者不必自己安裝,當然也解除安裝不了 同時也可以刪減系統自帶的應用程式,精簡系統 1 刪除android自帶的應用程式,如cammra 在 build target product generic.mk 在語句product packages...

如何讓自己的Android程式永不被系統kill

相關知識 一般來說,在android 系統中,當某程序較長時間不活動,或系統資源比較緊時,該程序可能被系統 kill 掉,以此來 一些資源。android 系統會根據程序的優先順序來選擇性地殺死一些程序,優先順序從高到低依次是 1.前台程序 foreground process 2.可視程序 vis...

如何讓自己的Android程式永不被系統kill

一般來說,在android 系統中,當某程序較長時間不活動,或系統資源比較緊時,該程序可能被系統 kill 掉,以此來 一些資源。android 系統會根據程序的優先順序來選擇性地殺死一些程序,優先順序從高到低依次是 1.前台程序 foreground process 2.可視程序 visible ...