簡體   English   中英

Android將鬧鍾設置為過去的日期

[英]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);

setInexactRepeating()文檔中

安排具有不精確觸發時間要求的重復警報; 例如,每小時重復一次的警報,但不一定在每小時的頂部重復。

實際上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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM