簡體   English   中英

運行前台服務時設備是否進入打ze模式

[英]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.

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