2010-06-11 56 views
4

我想知道每天凌晨4點運行服務的最佳實踐。Android - 讓服務每天在4AM運行

I 認爲的方法我應該這樣做是使用AlarmManager創建一個新的重複鬧鐘,讓它在凌晨4點運行服務。問題是,我不確定在哪裏放置代碼來設置鬧鐘。

作爲OnCreate方法的第一個任務之一,我是否將其作爲主要活動執行?我是否用BroadcastReceivers和意圖做一些時髦的東西?當用戶更新我的應用時會發生什麼?用戶重新啓動時會發生什麼?

這些問題的任何幫助將不勝感激:)示例代碼也會有幫助!

巴拉

回答

4

你可以安排你的鬧鐘,每次手機啓動,每次應用程序啓動。要收聽電話啓動事件,您可以使用BroadcastReceiver。

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 
. 
. 
. 
<receiver android:name=".BootReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 

有關完整的示例,可以查看Photostream應用程序http://code.google.com/p/apps-for-android。它使用完全相同的方法。

+0

因此,看起來我創建了一個BroadcastReceiver,它只需調用一個Service並告訴它安排一段時間開始。聽起來很簡單。當我的應用程序啓動時如何?我是否應該在第一次活動中安排服務,或者是否有我可以撥打的其他意向? – Bara 2010-06-11 16:14:05

+0

第一個活動很棒 – Fedor 2010-06-11 16:34:59

+0

最後一個問題:用戶更新我的應用程序時如何?他們不一定會啓動或重新啓動他們的電話,但我相信我的服務在那個時候關閉。我會怎麼做? – Bara 2010-06-11 19:41:22