2010-08-26 68 views
3

我有一個應用程序需要向服務器發送定期心跳,但是當手機進入待機模式時,背景心跳線程會死亡。無論如何,將手機從待機狀態喚醒,發送心跳,然後以編程方式返回睡眠狀態?如果可能,我想避免使用PARTIAL_WAKE_LOCK。Android - 週期性地從待機模式中喚醒?

感謝

+0

爲什麼在手機睡着的時候需要發一個心跳?這聽起來像一個可怕的電池消耗。 – 2010-08-26 20:19:02

+0

這聽起來像你需要建立一個服務,而不是使用線程。 – Hans 2010-08-26 22:56:38

回答

4

反正有從待機狀態喚醒的電話,發送心跳,然後回去睡覺編程 ?

使用AlarmManager_WAKEUP式報警。這裏是a sample project說明它的使用(以及你想要的WakefulIntentService,以確保設備在網絡I/O期間不會重新入睡)。

如果可能,我想避免使用PARTIAL_WAKE_LOCK。

如果沒有WakeLock,您將無法執行網絡I/O,因爲設備將在I/O期間重新入睡。使用AlarmManager,您可以安排僅在實際心跳工作期間持有WakeLock,而不是100%的時間。