[英]Does device enter doze mode while foreground service running
我的應用需要長時間在后台運行,並定期將數據發送到服務器。 我嘗試使用AlarmManager,但是它在打ze模式下受到限制。 我接下來想到的是前台服務。
運行前台服務時設備是否進入打ze模式?
如果設備進入打ze模式,前台服務運行時是否限制了互聯網連接?
這對我來說效果很好,在一些模擬器和Android 6.0和7.1真實設備上測試了幾個小時的連續運行,網絡連接從未丟失:
在“暫停時的主要活動”中,我獲得了部分WakeLock,並以STARTFOREGROUND_ACTION意圖啟動了服務,該服務調用startForeground並顯示通知。
在活動onResume上釋放WakeLock時,服務會以STOPFOREGROUND_ACTION意圖停止,並且服務本身會調用stopForeground和stopSelf。
而且這還避免了活動在按Back鍵時被破壞:
@Override
public void onBackPressed() {
moveTaskToBack(true);
}
當然,我提供了一個菜單選項來停止后台處理並完成活動
我的代碼(定期詢問互聯網服務器)放置在“活動”中,它使用計時器。
希望對你有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.