2012-02-09 29 views
0

我有一個簡單的計時器應用程序。定時器運行在一個服務中,並將消息廣播到活動類,以便在定時器時鐘倒數時更新UI。當你只是在屏幕上保持應用程序打開狀態時,以及在後臺運行約25分鐘時就可以正常工作。但在後臺25分鐘後,系統似乎關閉了該活動,因爲當我回到應用程序時,屏幕不再像以前那樣更新UI。我在ui類的oncreate和onResume區域都製作了廣播接收器。我可以做什麼,以便即使在我想象的是操作系統在25分鐘後將其殺死後,該課程也會得到更新?如何使服務在系統關閉後重新打開後更新活動的UI

+2

有沒有考慮過使用一個小部件來完成這些任務?服務會定期更新您的小部件。如果您需要更新活動,請考慮使用將更新的存儲空間,並在您的活動啓動時僅使用最新數據重新讀取存儲空間。如果服務看到活動,它將直接更新活動。或許如此。 – 2012-02-09 22:48:34

回答

0

操作系統殺死你的服務,導致它認爲它已經死亡。如果用戶在25分鐘內沒有使用它,則操作系統可能是正確的。你需要的是一個STICKY_SERVICE。另外,我贊同@Sergey Benner。我會使用一個小部件。更多用戶友好。

+0

感謝您的幫助。我不會去小部件路線。我要試試這個,我會更新我的結果。 – Dave 2012-02-09 23:22:55

+0

如果(當)服務被終止時,您需要一些存儲剩餘時間的方法。我建議將開始時間存儲在首選項中。 – AedonEtLIRA 2012-02-09 23:33:43

+0

好的。所以STICKY_SERVICE只是說如果調用重新啓動服務。看起來有沒有簡單的方法來保持服​​務運行。我想我需要捕捉我的服務ondestroy被調用時的剩餘時間。然後將其與重新啓動時間進行比較。計算差異。開一個新的時間。將其發送回服務。每次系統任意關閉我的服務時重複此操作。我不是這個操作系統大欺凌程序的忠實粉絲。但是如果我的服務沒有重新啓動呢?定時器永遠不會關閉,這是應用程序的全部要點。離奇。不知道該去哪裏。 – Dave 2012-02-09 23:47:06

相關問題