2016-03-02 58 views
0

要設置鬧鈴,我用含義參數

AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
     alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, futureTimeInMillis, pendingIntent); 

我不明白AlarmManager.ELAPSED_REALTIME_WAKEUPfutureTimeInMillis之間的關係。例如,假設我想從現在開始15分鐘後發出警報。那麼futureTimeInMillis的價值是多少?是它

futureTimeInMillis = NOW+MIN_15; 

或者是

futureTimeInMillis = MIN_15; 

回答

1

根據該文檔AlarmManager.ELAPSED_REALTIME_WAKEUP:在SystemClock.elapsedRealtime

報警時間()(自引導時間, 包括睡眠) ,它會在設備熄滅時喚醒設備。

所以它不是你真正想要的東西,我猜。

至於你的問題,AlarmManager.RTC_WAKEUP應該用於與

futureTimeInMillis = NOW+MIN_15 
+0

改變爲'RTC_WAKEUP'解決我的問題。但我仍然不明白'ELAPSED_REALTIME_WAKEUP'。我在發佈之前閱讀了文檔。 –

+0

ELAPSED_REALTIME_WAKEUP - 喚醒設備並在設備啓動後經過指定的時間長度後觸發掛起的意圖。 – csenga

+0

因此,例如,如果您使用ELAPSED_REALTIME_WAKEUP和3600000,那麼這將在設備啓動後的一小時之後觸發您的意圖。 – csenga