我有一個小部件,按下後會發送一個廣播,啓動一個CountDownTimer更新我的小部件,並在最後播放警報。這在仿真器中很漂亮。我如何確保CountDownTimer滴答並完成?
然而,在我的手機上,這是一個不同的故事。我的手機資源受到限制,導致我的進程定期死亡,當然,這意味着CountDownTimer不再更新我的小部件。
看來,未來可靠地做事的唯一方法是使用AlarmManager,因爲這會設置系統級別的警報。但是,文檔陳述並且我同意,你不應該使用它作爲蜱。但是,由於您可能使用的任何其他東西都有可能被任意關閉,所以它們並沒有給我們太多選擇。
我的問題是:有沒有辦法確保CountDownTimer保持滴答狀態並最終調用onFinish(),還是我必須簡單地刪除它並切換到AlarmManager並「誤用」它?任何其他保證東西剔除和完成的選項也是受歡迎的。
我應該補充一點,我不能依靠調用onUpdate()的操作系統,這兩者都是因爲它每隔30分鐘就會這樣做,並且也是因爲大部分時間部件什麼都不做。只有當它被點擊時,它會在幾秒鐘內每秒鐘滴答下來。
這會完成什麼? – 2012-03-29 11:43:54
雖然服務仍然可能被殺害。此外,具有CountDownTimer的東西不是一個活動,它是一個BroadcastReceiver,但也許這並不重要。我們基本上將該服務用作主播。不過,我知道會發生什麼。客戶仍然會抱怨,偶爾倒計時不會奏效。 – 2012-03-29 12:10:47
實際上,與此相結合的服務可能是票據:http://stackoverflow.com/questions/3856767/android-keeping-a-background-service-alive-preventing-process-death – 2012-03-29 12:22:15