我有一個Android應用程序,它依賴於web服務返回的值。該值每週只更改一次。客戶應該檢測到這個變化的值,但是他們發現這種變化的確切時間並不重要,12到24小時之後應該沒問題。我應該安排在Android自定義應用程序類onCreate()方法中執行的操作嗎?
我的當前實現在自定義Application類的onCreate()方法中啓動一個IntentService,該方法從webservice中檢索值。我還將最後一次檢索的值保存在SharedPreferences中,因此應用程序不必等到檢索到該值。
現在我的問題是,如果有必要在onCreate()方法中第一次檢索後計劃檢索此值,比方說12小時後。我知道onCreate()方法在應用程序的生命週期中只調用一次,但我不知道Android系統會終止應用程序的可能性。假設應用程序將被終止足夠多的時間以便不需要調度是否合理?如果我應該安排這次手術,那麼最好的方法是什麼?
如果你使用onCreate,我不認爲你會有任何保證,它會被稱爲第二次。例如。如果用戶插入手機進行充電,則會關閉睡眠狀態並讓應用程序持續運行數日。非常不可能,但並非不可能。如果我是你,我會設置某種計劃任務。也許這個鏈接將有所幫助 - http://developer.android.com/resources/articles/timed-ui-updates.html。 – 2011-12-20 13:07:52
你提出的場景是我問這個問題的原因:)在鏈接的文章中,處理程序和postDelayed()方法的代碼示例對我來說看起來不錯,我認爲它也是一個有效的解決方案? – 2011-12-20 13:22:14
我將實施您的鏈接文章中概述的解決方案。如果你把它放在你自己的答案中,我會接受你的答案。如果不是,我會在稍後回答我自己的問題。 – 2011-12-20 14:08:52