AlarmManager的做用文檔中的解釋是:在特定的時刻爲咱們廣播一個指定的Intent。簡單的說就是咱們設定一個時間,而後在該時間到來時,AlarmManager爲咱們廣播一個咱們設定的Intent。
對應AlarmManager更深層的瞭解能夠參考:
http://www.programbbs.com/doc/5888.htm
http://jinguo.iteye.com/blog/799778
android提供了四種類型的鬧鐘:
❑ ELAPSED_REALTIME
在指定的延時事後,發送廣播,但不喚醒設備。
❑ ELAPSED_REALTIME_WAKEUP
在指定的演示後,發送廣播,並喚醒設備
延時是要把系統啓動的時間SystemClock.elapsedRealtime()算進去的,具體用法看代碼。
❑ RTC
在指定的時刻,發送廣播,但不喚醒設備
❑ RTC_WAKEUP
在指定的時刻,發送廣播,並喚醒設備
AlarmManager提供的方法:
❑ 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)
設置一個重複鬧鐘的不精確版本,它相對而言更節能(power-efficient)一些,由於系統可能會將幾個差很少的鬧鐘合併爲一個來執行,減小設備的喚醒次數。
內置的幾個interval爲:
INTERVAL_FIFTEEN_MINUTES
INTERVAL_HALF_HOUR
INTERVAL_HOUR
INTERVAL_HALF_DAY
INTERVAL_DAY
若是你將其設爲DAY,那麼可能這一天中的全部鬧鐘都會被合併掉。
❑ void cancel(PendingIntent operation)
取消一個設置的鬧鐘
❑ void setTimeZone(String timeZone)
設置系統的默認時區。須要android.permission.SET_TIME_ZONE權限
javascript
PendingIntent:簡單的說就是在Intent上在加個指定的動做。Intent的話,咱們還須要在執行startActivity、startService或sendBroadcast才能使Intent有用。而PendingIntent的話就是將這個動做包含在內了,如PendingIntent.getBroadcast就包含了sendBroadcast的動做。
5s後發送指定廣播 java
5s後發送指定廣播,而後每一個10秒重複發送廣播 android