Android 之 AlarmManager(定時器) 的介紹和使用


AlarmManager 包含的主要方法:

// 取消已經注冊的與參數匹配的定時器 

void cancel(PendingIntent operation)
//注冊一個新的延遲定時器
void set(int type, long triggerAtTime, PendingIntent operation)
//注冊一個重復類型的定時器
void setRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)
//注冊一個非精密的重復類型定時器
void setInexactRepeating (int type, long triggerAtTime, long interval, PendingIntent operation)
//設置時區
void setTimeZone(String timeZone)

定時器主要類型:

public static final int ELAPSED_REALTIME 

// 當系統進入睡眠狀態時,這種類型的鬧鈴不會喚醒系統。直到系統下次被喚醒才傳遞它,該鬧鈴所用的時間是相對時間,是從系統啟動后開始計時的,包括睡眠時 間,可以通過調用SystemClock.elapsedRealtime()獲得。系統值是3 (0x00000003)。

public static final int ELAPSED_REALTIME_WAKEUP
//能喚醒系統,用法同ELAPSED_REALTIME,系統值是2 (0x00000002) 。

public static final int RTC
//當系統進入睡眠狀態時,這種類型的鬧鈴不會喚醒系統。直到系統下次被喚醒才傳遞它,該鬧鈴所用的時間是絕對時間,所用時間是UTC時間,可以通過調用 System.currentTimeMillis()獲得。系統值是1 (0x00000001) 。

public static final int RTC_WAKEUP
//能喚醒系統,用法同RTC類型,系統值為 0 (0x00000000) 。

Public static final int POWER_OFF_WAKEUP
//能喚醒系統,它是一種關機鬧鈴,就是說設備在關機狀態下也可以喚醒系統,所以我們把它稱之為關機鬧鈴。使用方法同RTC類型,系統值為4(0x00000004)。

AlarmManager 生命周期:

repeating AlarmManager一旦啟動就會一直在后台運行(除非執行cancel方法),可以在“應用管理”中看到這個應用狀態是正在運行。 “強行停止”可以讓Alarmmanager停掉。

嘗試了幾種任務管理器, 都只能重置計數器(確實釋放內存了),但都無法關閉定時器,只有系統自帶的“強行停止”奏效。

 

使用實例如下鏈接:

http://files.cnblogs.com/_ymw/AlarmManager.rar


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM