我創建了一款在所有手機中運行良好的Android應用程序。但在我的阿爾卡特手機中,手機並未進入深度睡眠模式,數據網絡出現故障,因此應用程序無法獲取數據網絡,也無法同步服務器中的數據。Android深度睡眠和喚醒鎖
我的設計...
SystemBootReceiver
- >(DataSyncService)Service
- >(MyBroadcastReceiver)BroadcastReceiver
- >(MyDataService)Service
。
所以這裏在系統啓動我開始DataSyncService
我在那裏設置AlarmManager
(重複),並呼籲MyBroadcastRecever
。致電BroadcastRecever
後,我通過致電stopself()
停止DataSyncService
。
現在MyBroadcastRecever
調用MyDataService
。
我遇到了WakeLocks,如上所述阻止手機進入深度睡眠模式。 所以我實現它裏面MyDataService
onCreate()
方法
PowerManager pm = (PowerManager)
getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
mWakeLock.acquire();
而且release()
之後鎖定停止該服務之前。
我也在Android Manifest中設置了權限。
但這沒有奏效。因此,爲了快速檢查,我使用了來自市場的WAKE LOCK應用程序。
但是這也沒有喚醒電話。我再次遇到了從市場上喚醒我的ANDROID(應用程序從商店中刪除)應用程序,並安裝了它。這裏發生了一個奇蹟。
它使手機保持活着。
正如本應用程序中的說明所述,他們也使用了Wake Lock
。那麼我錯過了什麼?
是否存在執行錯誤或設計問題?
也許,你可以嘗試[ACQUIRE_CAUSES_WAKEUP](http://developer.android.com/reference /android/os/PowerManager.html#ACQUIRE_CAUSES_WAKEUP)國旗與SCREEN_DIM_WAKE_LOCK –
你能澄清你的問題嗎?問題是,喚醒設備後應用程序運行時,網絡請求會失敗? – satur9nine
你解決了你的問題嗎? –