簡體   English   中英

在打盹模式下啟動前台服務

[英]Starting foreground service in doze mode

我正在開發一個通過wifi連接到特殊設備的應用程序。 我需要在短時間內進行狀態更新。 保持我的特殊設備在應用程序中的狀態是最新的。 FCM不是一種選擇。 我的想法是為用戶提供兩個選項:使用前台服務進行快速更新或使用定期更新機制進行“慢速”更新以節省電池電量。

我的問題是關於第二種選擇。 間隔時間應為五分鍾左右。 因此無法使用JobScheduler 但即使使用AlarmManager似乎也不是一個選項,因為在打瞌睡維護窗口期間我無法訪問網絡。

我想過使用一個WakefulBroadcastReceiver接收IntentAlarmManager ,需要WakeLock ,並把我的長時間運行的Service通過調用前景startForeground() 但是,只要設備處於打盹模式, startForeground()方法似乎對Service沒有影響。

我讀了許多關於打瞌睡和服務的網頁,但不知道如何解決我的問題...有沒有人有個主意?

你應該使用GcmTaskService 您可以為您的操作安排一些間隔,即使在打盹模式下也能正常工作,請通過鏈接查看更多信息

您可以使用setAlarmClock,但不建議用於您的目的。 相反,您可以使用setExactAndAllowWhileIdle進行手動重新編程,間隔為15分鍾。 最佳方式:GCM。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM