我正在开发播放器应用。 因此,它使用前台服务来处理回放。 直到最近,该服务仍与我的活动有关。 情况不再如此。 从那以后,某些特定设备(主要是Pixel 1/2/3)在屏幕关闭1分钟后就杀死了我的应用 该服务是不绑定任何东西的前台服务。 为什么设备会杀死它? 将应用程序从设备优化的应用程序列表中排除后,问题便得到解决
我没有提供代码,因为我只是想了解这种情况是否有意义,如果可以的话我应该怎么做
顺便说一句,该应用程序正在使用接收器来处理Screen_ON / OFF消息。这就是我在日志中看到播放器服务onDestroy()方法在屏幕关闭后正好1分钟被杀死的方法
答案 0 :(得分:-1)
我应该怎么做才能防止这种情况?
此处的关键点使服务保持活动状态,如官方文档中所述:
一个应用程序位于前台时,它可以创建并运行两个应用程序 免费提供前台和后台服务。
因此,我们可以得出结论,将作品保持在前台并且对用户可见是被杀死的机会很小。为此,我们需要知道android如何获得该过程处于前台的想法?
以下是将某个流程视为前台的标准:
- 它具有可见的活动,无论该活动是开始的还是活动的 暂停。
- 它具有前台服务。
- 另一个前景应用程序通过绑定到该应用程序而连接到该应用程序 一种服务或通过使用其内容之一 提供者。例如,如果另一个应用程序在前台,则该应用程序在前台 绑定到其:
-IME壁纸服务 -通知监听器 -语音或文字服务
如果所有这些条件都不成立,则认为该应用程序处于 背景。
如果您的应用进程未满足上述任何条件,那就是服务被终止的原因。
您可以在此处阅读有关此主题的更多信息: