屏幕关闭1分钟后,Android杀死了我的前台服务

时间:2018-11-15 18:57:20

标签: android service foreground-service

我正在开发播放器应用。 因此,它使用前台服务来处理回放。 直到最近,该服务仍与我的活动有关。 情况不再如此。 从那以后,某些特定设备(主要是Pixel 1/2/3)在屏幕关闭1分钟后就杀死了我的应用 该服务是不绑定任何东西的前台服务。 为什么设备会杀死它? 将应用程序从设备优化的应用程序列表中排除后,问题便得到解决

我没有提供代码,因为我只是想了解这种情况是否有意义,如果可以的话我应该怎么做

顺便说一句,该应用程序正在使用接收器来处理Screen_ON / OFF消息。这就是我在日志中看到播放器服务onDestroy()方法在屏幕关闭后正好1分钟被杀死的方法

1 个答案:

答案 0 :(得分:-1)

我应该怎么做才能防止这种情况?

此处的关键点使服务保持活动状态,如官方文档中所述:

  

一个应用程序位于前台时,它可以创建并运行两个应用程序   免费提供前台和后台服务。

因此,我们可以得出结论,将作品保持在前台并且对用户可见是被杀死的机会很小。为此,我们需要知道android如何获得该过程处于前台的想法?

以下是将某个流程视为前台的标准:

  
      
  1. 它具有可见的活动,无论该活动是开始的还是活动的   暂停。
  2.   
  3. 它具有前台服务。
  4.   
  5. 另一个前景应用程序通过绑定到该应用程序而连接到该应用程序   一种服务或通过使用其内容之一   提供者。例如,如果另一个应用程序在前台,则该应用程序在前台   绑定到其:
  6.   
     

-IME壁纸服务   -通知监听器   -语音或文字服务

     

如果所有这些条件都不成立,则认为该应用程序处于   背景。

如果您的应用进程未满足上述任何条件,那就是服务被终止的原因。

您可以在此处阅读有关此主题的更多信息:

Foreground service being killed by Android