5
我正在編寫一個Android客戶端應用程序,它使用HTTP長輪詢(Comet)不斷接收來自服務器的推送通知。什麼事件可以喚醒睡眠中的Android設備?
我不想永遠保持WakeLock,因爲它會消耗電池電量,但是我需要確保設備即使在睡眠模式下也能收到通知。
而且我發現這個問題:
Android: Sleep stages/levels on an Android device?
其中「CommonsWare」提到,爲非WiFi插座傳入數據包會喚醒設備。
所以我的解決辦法是這樣的:
Client ------------------------- Server
---- Request----->
release WakeLock (Allow device to sleep)
<----Notification-- (Hopes it can wake up the device)
require WakeLock
process the notification
---- Request----->
release WakeLock
....
但有收到通知,並要求激活鎖定之間的一個小的時間窗口,所以我的問題是,如何長時間的設備保持這種清醒狀態?在這段時間內,設備是否可以恢復睡眠?