在Android 9中5分钟后,后台应用被杀死

问题描述

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

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

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

解决方法

您需要拥有foreground service,否则操作系统将杀死您的应用程序

,

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

应用处理用户可见的任务时,会将其放置在允许列表中,例如:

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

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

3)从通知中执行待处理的意图。

4)在VPN应用提升到前台之前启动VpnService。

因此,要解决此问题,请使用Alarm Manager并在10毫秒后设置警报以启动服务。因此,在这种情况下,Android不会对其进行限制。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...