我正在Android中構建鬧鐘應用程序。 AlarmManager會自動處理夏令時和冬令時之間的時鐘變化,還是我需要明確地管理它?Android AlarmManager是否處理夏時制變更?
編輯:如果在重複間隔越過時鐘改變時設置了鬧鐘,那麼該鬧鐘是否需要重新安排?
我正在Android中構建鬧鐘應用程序。 AlarmManager會自動處理夏令時和冬令時之間的時鐘變化,還是我需要明確地管理它?Android AlarmManager是否處理夏時制變更?
編輯:如果在重複間隔越過時鐘改變時設置了鬧鐘,那麼該鬧鐘是否需要重新安排?
AlarmManager
將照顧當天的節能。它會在每天開始時重置時區信息並考慮夏令時信息。
與接受的答案相反,我在應用程序中看到了不同的行爲,因此我有一項任務在午夜後幾分鐘運行。
夏令時更改後,任務在晚上11:00之後開始運行幾分鐘,導致任務返回錯誤結果(任務會檢查當前日期並相應地查詢內容)。
所以我的答案是 - 是的,你需要明確地管理它。編輯:我們的任務需要在指定的時間每天運行一次。 爲了解決這個問題,我們保存上次運行的應用程序,並在任務再次運行時檢查該時間戳。 如果時間戳不是24小時(可能是由於DST更改導致的23小時或25小時),我們會中止AlarmManager
並安排新的時間戳。 所以我們每年最多有2次「錯過」(我們可以忍受這一次)。
由於夏令時改變,我的應用程序也失敗了。如何管理它? –
查看我的編輯以瞭解我們如何解決它。 – marmor
謝謝marmor!我終於通過編程下一次鬧鐘來解決它,每次發生這種情況時,現在工作正常:) –
因此,我不需要每天重新安排警報? (請參閱我在原始問題中的編輯)。 – Leo
它應該正常工作,因爲AlarmManager將在每天的開始時重新計算,並考慮當天的節電。 – havexz
太好了 - 謝謝! – Leo