我想每X分鐘執行一次REST API請求來更新我的應用程序使用的數據庫。Android - 實現類似Unix的cronjob
無論我的應用程序是否正在運行,都會發生這種情況。這也意味着,如果用戶重新啓動移動設備,輪詢應該立即開始,而不需要先運行應用程序。
基本上我想要實現這個樣的Unix的cronjob
*/5 * * * * /usr/local/bin/update_something.sh
的是,可能通過Android服務?如果是這樣,你能給我一些基本的方向嗎?
謝謝。
我想每X分鐘執行一次REST API請求來更新我的應用程序使用的數據庫。Android - 實現類似Unix的cronjob
無論我的應用程序是否正在運行,都會發生這種情況。這也意味着,如果用戶重新啓動移動設備,輪詢應該立即開始,而不需要先運行應用程序。
基本上我想要實現這個樣的Unix的cronjob
*/5 * * * * /usr/local/bin/update_something.sh
的是,可能通過Android服務?如果是這樣,你能給我一些基本的方向嗎?
謝謝。
是的,您可以使用服務,但需要在某個相關時間點啓動/啓動服務。你可以嘗試使用像AlarmManager
這樣的類,每隔x分鐘就可以觸發你的服務。
http://developer.android.com/reference/android/app/AlarmManager.html
編輯 -
要在設備啓動時開始爲您服務,您可以使用廣播接收器
<action android:name="android.intent.action.BOOT_COMPLETED" />
清潔香港這個環節出
http://www.androidcompetencycenter.com/2009/06/start-service-at-boot/
所以,這裏是我將如何做到這一點:
BroadcastReceiver
偵聽到可接受的廣播Intent
,如Intent.ACTION_BOOT_COMPLETED
(你會爲了申報許可,您的清單,以接收意圖)BroadcastReceiver
收到意圖,有它調用設置報警設置Service
將設置AlarmManager
。 Service every five minutes. (I don't know the details about how
AlarmManager`作品)
請注意,以小於15分鐘的時間間隔從後臺輪詢網絡而不給用戶設置以控制時間間隔通常被認爲粗魯且不考慮用戶的電池壽命。有關這種設置的示例,請參閱Twitter應用程序 - 用戶可以選擇每5分鐘到每4小時進行一次輪詢。您還應該傾向於使用`AlarmManager`提供的不精確的時間間隔,以便系統可以將您的應用程序與其他同時工作的其他應用程序一起喚醒。 – adamp 2010-11-28 21:00:41