AlarmManager的問題: app
我開始的代碼是這樣寫的 學習
後來我發現問題出在第二個參數上 我對他的理解是錯誤的 spa
type
One of ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP}, RTC or RTC_WAKEUP. |
triggerAtTime
Time the alarm should first go off, using the appropriate clock (depending on the alarm type). |
我以前覺得它是「延遲」時間,而實際它是「啓動」時間。 orm
要理解這個參數還要看type這個參數 對象
它大體分爲兩種類型 一種是相對時間 一種是絕對時間 get
因此,根據使用的類型不一樣 triggerAtTime設置也有所不一樣 it
若是使用ELAPSED_REALTIME_WAKEUP類型 應該調用SystemClock.elapsedRealtime()獲取相對時間在加上你設定的延遲時間 io
若是使用RTC_WAKEUP類型 應該調用System.currentTimeMillis()獲取從1970.1.1號以來的時間在加上你設定的延遲時間 table
============================================= ast
setRepeating方法有4個參數,這些參數的含義以下:
type: 表示警報類型,通常能夠取的值是AlarmManager.RTC和AlarmManager.RTC_WAKEUP。若是將type參數值設爲 AlarmManager.RTC,表示是一個正常的定時器,若是將type參數值設爲AlarmManager.RTC_WAKEUP,除了有定時器的 功能外,還會發出警報聲(例如,響鈴、震動)。
triggerAtTime:第1次運行時要等待的時間,也就是執行延遲時間,單位是毫秒。
interval:表示執行的時間間隔,單位是毫秒。
operation: 一個PendingIntent對象,表示到時間後要執行的操做。PendingIntent與Intent相似,能夠封裝Activity、 BroadcastReceiver和Service。但與Intent不一樣的是,PendingIntent能夠脫離應用程序而存在。
最近看到大神的一篇文章。學習學習……