【问题标题】:Clarification on android app running in background关于后台运行的android应用程序的说明
【发布时间】:2021-04-05 16:26:46
【问题描述】:

我对应用程序的背景限制有点困惑,我可以使用一个解释。因此,从 android 8 开始,我们对服务和发送广播有限制。至于现在,我们只能让服务在有前台通知的情况下在后台运行,否则会被杀死。如果应用程序的任何活动都不可见,则该应用程序被认为处于后台,我的问题是: 1. 应用程序进程本身可以在没有前台服务的情况下存活多长时间?例如,如果我进入主屏幕,从而将应用程序置于后台,我的应用程序仍然可以播放数小时的声音,但我预计它会在几分钟内被系统杀死。 2. 前台服务是否与应用程序生命周期相关?例如,如果我启动前台服务,那么我的应用不会被系统杀死或不太可能被系统杀死。

我问这一切是因为我的应用程序正在使用 c++ 库进行 VOIP 呼叫并在后台执行其他操作,我想知道如果我只是打开主屏幕并让我的应用程序正常工作会发生什么,到目前为止我'从未见过系统在通话期间杀死应用程序。

【问题讨论】:

    标签: android


    【解决方案1】:
    1. 应用进程本身在没有前台服务的情况下可以存活多久?

    Android 低内存杀手守护进程不断监控系统。如果内存压力很大,那么最不重要的进程就会被杀死。如果没有内存问题,您的应用可能会在后台运行很长时间。但是,供应商可能会限制后台进程的数量。如果此限制为 3 并且您的应用程序下降到第 4 位,即使没有内存压力,它也会被杀死。有些供应商只是杀死不可见的应用程序,而您对此无能为力。您可以在 OnePlus 设备上查看 this answer 以了解类似问题。

    1. 前台服务是否与应用程序生命周期相关?例如,也许如果我启动前台服务,那么我的应用不会被系统杀死或不太可能被系统杀死。

    根据Android Processes and Application Lifecycle 文档,前台服务在系统中具有第二高的优先级。所以答案是肯定的,如果你在运行前台服务,即使你没有可见的 Activity,你的应用也不太可能被杀死。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 1970-01-01
      相关资源
      最近更新 更多