-1

我已經歷了各種討論主題並嘗試了多次迭代,以便讓我的應用程序按固定間隔重複運行。我也取得了成功,但開始瞭解線索以瞭解事情的工作方式。Android:調度應用程序以繼續執行

我曾嘗試與ScheduledExecutorService以及TimerTask實施,並沒有以正確的時間間隔觸發我的任務。但是在AlarmManager中找到了成功。

請帶領我正確理解爲什麼時序不適用於ScheduledExecutorService和TimerTask。

該應用程序需要定期執行任務。說,我的任務需要大約5分鐘才能完成,我想保持它的計劃,以便每30分鐘運行一次。當我使用ScheduledExecutorService或TimerTask構建應用程序時,發現它在30分鐘內不觸發任務,但在1小時甚至更多時間觸發。到目前爲止,使用鬧鐘管理器,似乎在大約30分鐘時間內處於正常工作狀態(略有變化仍然可以找到,但比其他兩個更好)。

+0

請完整,準確地解釋「不好」的含義。 – CommonsWare 2014-10-04 14:14:54

+0

@CommonsWare更新了詳細的問題。請看一看。 – 2014-10-04 15:15:43

回答

0

當我使用ScheduledExecutorService或TimerTask構建應用程序時,發現它在30分鐘時不觸發任務,但在1小時甚至更多時間觸發。

更重要的是,它不會在所有一旦你的過程被終止觸發,它可以在任何時候發生,並且,從用戶的角度來看,應該迅速發生,以釋放RAM用於其他應用程序。

您的觸發延遲可能是由於設備入睡。您的解決方案不僅會佔用用戶的RAM,還會要求您防止設備入睡,這對於電池壽命來說是非常可怕的。

AlarmManager是一個更合適的解決方案,因爲它不要求您保持服務運行或以其他方式處理流程。請確保使用WakefulBroadcastReceiver作爲您響應您的事件的方式,因爲設備將要睡着。

+0

太棒了。你的迴應幫助我得到了我想要的東西,甚至可以在Android系統上了解更多。 Android上新鮮,每一個技術術語都鼓勵我探索更多。 :) – 2014-10-04 17:31:50

相關問題