【发布时间】:2017-05-29 20:49:05
【问题描述】:
According to the documentation,从 Android O 开始,服务将在应用不再处于前台几分钟后停止。
文档建议大多数服务可以替换为 JobScheduler 作业。我的问题是 - 作业是否也有任何特殊行为,或者它们的行为是否与 Android O 之前的服务相同?他们可以“永远”活着(当然,只要系统不需要内存),还是系统也会在某个窗口结束时杀死他们?
【问题讨论】:
According to the documentation,从 Android O 开始,服务将在应用不再处于前台几分钟后停止。
文档建议大多数服务可以替换为 JobScheduler 作业。我的问题是 - 作业是否也有任何特殊行为,或者它们的行为是否与 Android O 之前的服务相同?他们可以“永远”活着(当然,只要系统不需要内存),还是系统也会在某个窗口结束时杀死他们?
【问题讨论】:
他们可以“永远”活着(当然,只要系统不需要内存),还是系统也会在某个窗口结束时杀死他们?
没有。在我的测试中,您有大约 10 分钟的时间,而常规服务大约需要 1 分钟。
如果您需要永久运行的服务,则需要将其设为前台服务(startForegroundService() 在 Android O+ 上,或startService() 加上 startForeground() 在 Android 7.1 及更早版本上)。
【讨论】:
JobService 是完成工作的地方,而不是在 JobService 启动的某些辅助服务中。