[英]Android setting alarm to a past date
如果我添加警報但將開始日期設置為過去日期會發生什么?
是立即執行還是放入隊列並且從未執行過?
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, startDate, repeatingValue, alarmIntent);
從文檔中 ,如果startDate時間是過去的,則會立即觸發警報。
如果日期是過去那么警報將立即觸發。 但是,您可以嘗試使用setInexactRepeating
而不是setRepeating
:
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, startDate, setInexactRepeating , alarmIntent);
安排具有不精確觸發時間要求的重復警報; 例如,每小時重復一次的警報,但不一定在每小時的頂部重復。
實際上AlarmManager適用於當前時間。 因此,當您設置過去日期警報時,AlarmManager將執行
public void onReceive(Context context, Intent intent)
{
}
方法。
我認為警報只設置了幾個小時(至少通過Android用戶界面),而不是特定的一天,這樣它將在你設置的確切hour:minute
開始。
我可以從我之前使用AlarmManager
經驗中得出結論。 過去的日期會立即觸發警報。
據我所知,當時間設置為過去時間時, AlarmManager.set將立即執行,文檔說明了這一點。 AlarmManager.setInexactRepeating缺少此句子,此警報在設置為過去時間時不會觸發,它將在下一個時間間隔觸發,從給定時間開始。
AlarmManager.set和AlarmManager.setInexactRepeating都調用setImpl,它們作為參數傳遞了triggertime(在Android 7.1.2源中檢查)。 - >兩種方法沒有區別,如果過去是三卦。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.