问题描述
我最近在我的应用程序中添加了一项功能,可以通过网络共享屏幕。当我想在应用程序外部流式传输移动屏幕(即将应用程序置于后台)时,此功能特别有意义。 虽然我在使用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不会对其进行限制。