繁体   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