簡體   English   中英

前台服務是否在睡眠模式(而非打瞌睡模式)下存活?

[英]Does Foreground Service Survive Sleep Mode(not doze mode)?

所以我在打瞌睡期間閱讀了很多關於 android 服務及其生命周期的文章。

迄今為止:

后台服務受打瞌睡模式限制。

前台服務不受打瞌睡模式的影響。 這意味着他們繼續擁有訪問網絡等。

有很多關於打瞌睡模式和前台服務的帖子,但沒有一篇提到睡眠模式啟動時前台服務會發生什么。

睡眠模式- 意味着 CPU 將處於睡眠狀態並且不會接受除 RIL(無線電接口層)和警報之外的任何命令。 LCD 關閉后,CPU 將在幾分之一秒內進入睡眠模式。

打瞌睡模式- 意味着您手機上的應用程序將無法訪問網絡,當應用程序試圖阻止設備進入睡眠狀態時,系統將忽略“喚醒鎖”,並且不允許運行任何后台任務。 這當然讓人覺得你的手機對你沒什么好處,但打瞌睡有幾種方法可以保留功能。 雖然應用程序無法喚醒設備以運行同步作業和其他后台任務,但高優先級推送消息仍會顯示。 例如,環聊消息將出現在處於打瞌睡模式的設備上。

應用待機- 進入待機狀態的應用將失去所有網絡訪問權限,並且其所有后台同步作業都將暫停。 當您的手機插入電源時,這些限制會暫時解除,並且每隔一兩天就會解除幾分鍾。 這使暫停的應用程序有機會運行任何掛起的同步作業,但不允許它們繼續運行。 高優先級推送通知還可以將應用程序從待機狀態喚醒一小段時間。

問題:

  1. 處於睡眠模式時,前台服務是否也會暫停? 如果是,他們是重新開始還是從中斷的地方繼續?
  2. 當前台服務處於活動狀態時,設備是否會進入睡眠模式?

在 Doze 和 Standby 期間,前台服務仍然存在。 我檢查了這個。 我的應用程序是帶有 tcp 套接字的本地代理。 但是……網絡模塊要休眠了。 我的代理繼續工作,端口保持打開狀態,但由於待機期間網絡休眠,網絡連接將丟失。 簡單地按下電源按鈕 - 和起伏,數據包開始出去。 現在在連接超時條件下以編程方式搜索喚醒設備

睡眠模式與打瞌睡模式相同。 由於前台服務不受打瞌睡模式的影響,因此您應該可以正常使用前台服務。

例如:使用前台服務播放歌曲

暫無
暫無

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

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