2017-10-12 122 views
0

在Android奥利奥上,如果我的应用程序在前台启动服务,然后关闭我的应用程序,服务会在晚些时候被杀死吗?还是会保持活力?Android上的服务奥利奥

从好像该服务将被杀死,如果应用程序在后台这个视频后,https://www.youtube.com/watch?v=Pumf_4yjTMc&t=198s

然而,虽然测试,服务也相当活跃。将感谢任何生产反馈。

+0

原来我没有在我的应用中使用api 26。一旦我开始瞄准api 26,它会在应用程序处于后台时关闭服务。 – Akshay

回答

3

服务得到最终

当一个应用程序进入后台杀死,它有几个 分钟,它仍然允许创建和使用服务的窗口。在该窗口的末尾 处,应用程序被认为是空闲的。在此 时间,系统会停止应用程序的后台服务,就好像 应用程序调用了服务的Service.stopSelf()方法。

https://developer.android.com/about/versions/oreo/background.html

+0

请注意,在我的测试中,“几分钟”是〜1分钟。 – CommonsWare

+0

如果他们真的给了我们一个更窄的时间窗口,当我们可以预料到事情会停止的时候,这将是很好的 – tyczj

2

如果您关闭或销毁您的应用程序,导致所有这些进程都与应用程序的生命周期相关联,如果生命周期关闭,杀死,服务的调用和当前所有应用程序的进程都将被终止或者坠毁,所有的过程都会走向相同的一端。

0

谢谢您的回答!感谢您的回应。这是我的不好,因为我切换了不针对API 26的工作分支。 我认为,值得一提的是,上述限制仅适用于应用针对api 26(Android O)的情况。 我已经开始移动到Job scheduler,并且这似乎在Android O上工作。

+1

“值得一提的是,上述限制仅适用于应用程序针对api 26(Android O)” - 用户可以对于消耗大量电池的应用程序,也可以在Android 8.0+上手动启用此限制。 – CommonsWare

+0

@CommonsWare是真的,但是大多数用户做这件事的可能性非常小 – Akshay

+1

同意 - 我只是想确保阅读你的答案的人知道它。 – CommonsWare