[英]Starting foreground service in doze mode
我正在開發一個通過wifi連接到特殊設備的應用程序。 我需要在短時間內進行狀態更新。 保持我的特殊設備在應用程序中的狀態是最新的。 FCM不是一種選擇。 我的想法是為用戶提供兩個選項:使用前台服務進行快速更新或使用定期更新機制進行“慢速”更新以節省電池電量。
我的問題是關於第二種選擇。 間隔時間應為五分鍾左右。 因此無法使用JobScheduler
。 但即使使用AlarmManager
似乎也不是一個選項,因為在打瞌睡維護窗口期間我無法訪問網絡。
我想過使用一個WakefulBroadcastReceiver
接收Intent
由AlarmManager
,需要WakeLock
,並把我的長時間運行的Service
通過調用前景startForeground()
但是,只要設備處於打盹模式, startForeground()
方法似乎對Service
沒有影響。
我讀了許多關於打瞌睡和服務的網頁,但不知道如何解決我的問題...有沒有人有個主意?
你應該使用GcmTaskService 。 您可以為您的操作安排一些間隔,即使在打盹模式下也能正常工作,請通過鏈接查看更多信息
您可以使用setAlarmClock,但不建議用於您的目的。 相反,您可以使用setExactAndAllowWhileIdle進行手動重新編程,間隔為15分鍾。 最佳方式:GCM。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.