强制重启被操作系统杀死的Android服务

问题描述 投票:0回答:1

我有一个 Android 服务,可以在前台执行复杂的工作。 更具体地说,我有一个线程在前台启动的服务的 onStartCommand 中运行。 可悲的是,操作系统迟早会杀死我的进程,从而杀死我的服务(因为它都在一个进程中)。请注意,我的应用程序禁用了电池优化。 我尝试将该服务运行到不同的进程中,但这根本没有帮助,仍然被操作系统杀死。 我所做的是创建第二个应用程序,基本上是为了每 3 分钟重新启动我的第一个应用程序的服务。这种方法非常有用,因为它“延长”了我的服务的执行,但迟早我的第二个应用程序也会被杀死,所以我仍然遇到同样的问题。 由于我的设备具有 root 权限,因此建议我只需使用 am startservice -n 运行 shell 即可。 无限期运行的shell脚本短期内仍可能被操作系统杀死吗?

有一个应用程序,Tasker,即使没有 root 权限,只要禁用电池优化,也永远不会被操作系统杀死。

java android shell service sh
1个回答
0
投票

由于 Android 系统的限制,当应用程序关闭时,没有任何魔术可以让后台服务 24/24 工作,您可以使用前台服务向用户显示应用程序正在后台工作的通知,但是当他刷一下该服务将被视为操作系统的正常后台服务。

诸如实时通知之类的事情需要您使用 google 提供的 firebase 云消息传递

如果工作可能会延迟,您可以使用 Workmanger,如果对时间敏感(如警报),则使用警报管理器

© www.soinside.com 2019 - 2024. All rights reserved.