【问题标题】:App in background killed after 5 minutes in Android 9在 Android 9 中,后台应用程序在 5 分钟后被终止
【发布时间】:2020-09-14 09:13:19
【问题描述】:

我最近在我的应用中添加了一项功能,可以通过网络共享屏幕。当我想在我的应用程序之外流式传输移动屏幕时,此功能变得特别有意义,即将我的应用程序置于后台。 虽然我在装有 Android 8 的三星 S7 上没有问题,但该应用程序在三星 Active Pro 上在后台运行 5 分钟后不断被杀死。但是,如果平板电脑连接到 USB 电缆(连接到充电器或连接到我的 PC),则应用程序仍然有效。

我已为我的应用禁用电池优化,并尝试了在网络上找到的其他可能的用户端操作,但均未成功。

有什么我可以在开发人员方面做的吗? 我曾尝试使用唤醒锁,但这并没有帮助。在其他线程中,我读到使用前台服务发送通知可能会有所帮助:这是一个可行的解决方案吗?

【问题讨论】:

    标签: android background kill screensharing


    【解决方案1】:

    你需要有一个foreground service,否则操作系统会杀死你的应用程序

    【讨论】:

    • 我的服务是否需要完成特定的任务,或者它可能只是一个假人?
    • 一旦你有一个持续的通知(连接到服务),你的整个进程是活跃的(所以你不需要在你的服务中做任何事情,只要让它保持运行)
    【解决方案2】:

    Android 对后台服务施加了限制。Android 仅在以下情况下允许后台服务。

    当应用处理用户可见的任务时,它会被列入白名单,例如:

    1) 处理高优先级 Firebase 云消息 (FCM) 消息。

    2) 接收广播,例如 SMS/MMS 消息。

    3) 从通知中执行 PendingIntent。

    4) 在 VPN 应用程序将自身提升到前台之前启动 VpnService。

    因此,作为一种解决方法,使用警报管理器并在 10 毫秒后设置警报以启动服务。因此,在这种情况下,Android 不会限制它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-12
      • 2012-05-21
      • 2018-01-03
      相关资源
      最近更新 更多