0

首先,我所知道的所有問題和答案 in this stackoverflow questionin the official documentationin this github sample projectAndroid的 - 跟進GcmTaskService和GcmNetworkManager - 力後,調度任務停止

不幸的是,從我的測試中,我不能驗證我提供的鏈接中提到的整個「強制停止後的任務繼續運行」觀察結果。也許這現在已經修復了?

無論如何,我正在嘗試完成的是僅在用戶在強制停止後第一次打開其應用程序後重新安排我的任務。

假設我有一個應該每月運行一次的任務。我想要做的是隻在應用程序第一次啓動時安排它(通過Once庫https://github.com/jonfinerty/Once)。此任務將運行良好,直到用戶強制停止應用程序。在那一點上,我顯然不關心任務因爲用戶強制停止而沒有運行,但我希望只要用戶再次打開應用程序就重新安排工作。

這似乎沒有明顯的地方在代碼做到這一點。例如,如果我在應用程序類中執行該任務,則該任務將被重新計劃,但每次應用程序啓動時都會重新計劃任務,這不是我想要的。例如,如果我每次安排一次任務一次,應用程序就會啓動,那麼這個任務將永遠不會運行,因爲它將每天(當用戶打開應用程序時)安排在未來一個月,一次又一次。

有關我如何執行此操作的任何想法?這應該是一個非常常見的情況,除非我缺少某些東西。

乾杯

回答

2

我沒有深入閱讀,但也許你可以做得更簡單一點。

也許你只是將​​上次任務運行/完成和/或強制停止的時間和日期保存爲共享首選項。在應用程序啓動時,您可以從共享首選項中讀取此內容,並計算是否需要重新安排它。

希望這有助於有點

+1

那的確是對的方式去做,我只是希望有現成的更GcmNetworkManager具體的解決方案,而無需存儲狀態自己。 –