發生什麼事情,我應該添加鬧鈴但將開始日期設置爲過去的日期?安卓設置鬧鈴到過去的日期
是立即得到執行,還是放入隊列中,從不執行?
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, startDate, repeatingValue, alarmIntent);
發生什麼事情,我應該添加鬧鈴但將開始日期設置爲過去的日期?安卓設置鬧鈴到過去的日期
是立即得到執行,還是放入隊列中,從不執行?
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, startDate, repeatingValue, alarmIntent);
如果日期過去,則會立即觸發警報。然而,你可能會嘗試使用setInexactRepeating
而不是setRepeating
:
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, startDate, setInexactRepeating , alarmIntent);
計劃有不準確的觸發時間要求重複報警;例如, 例如,每小時重複一次警報,但不一定在每小時的頂部有 。
我認爲警報僅在設定時間(至少通過Android用戶界面),而不是某一天,這樣一來就會開始在你設置的確切hour:minute
。
從documentation開始,如果startDate時間過去,將立即觸發警報。
正如我從我以前的經驗AlarmManager
可以得出結論。過去的日期將立即觸發警報。
其實AlarmManager與當前時間一起工作。 所以,當你將設置過去的日期報警,那麼,AlarmManager將執行
public void onReceive(Context context, Intent intent)
{
}
方法。
據我所知,AlarmManager.set將現在執行時間設置爲過去的時間,文檔說,儘可能多。 AlarmManager.setInexactRepeating這個句子缺失,當它設置爲過去的時間時,這個警報不會觸發,它會在下一個時間間隔,從給定的時間開始觸發。
AlarmManager.set和AlarmManager.setInexactRepeating都調用setImpl,並將它們的triggertime作爲參數傳遞(在Android 7.1.2源中檢查)。 - >如果triggertime在過去,兩種方法都沒有區別。
試試你的自我,並測試它非常簡單:) – MilapTank 2014-08-29 10:14:25
使用使用'setInexactRepeating'而不是'setRepeating' .. – 2014-08-29 10:15:51