android - 强制停止后如何保持服务运行?

标签 android

我已经看到,如果您终止某个进程,它会立即重新启动并继续运行。这是如何实现的?如何通知系统我的服务不应该被终止,如果发生这种情况 - 重新启动它。

最佳答案

Android 就是这样做的。作为操作系统,Android 专门设计为始终在 ram 满的情况下运行。因此,如果你杀了,或者一个应用程序强行关闭,如果它们在 ram 中有空间,Android 会重新启动它以填充 ram。

它之所以这样做,是因为即使是“最快”的手机也是最普通的台式机的蜗牛,并且尽可能多地将您使用的程序加载到 ram 中使其能够简单地“恢复”程序而不是必须经过必须将其重新加载回 ram 然后从头开始运行的懒惰、浪费时间的过程。

Android 内核有自己的任务管理器。这意味着它将比任何基于应用程序的任务管理器更有效,因为它在内核级别运行,并且应该由任务 killer 来决定何时释放内存或不释放内存。让 Android 做它设计的事情。从长远来看,您尝试强制其重新运行程序或停止程序所做的任何事情都会减慢它的速度,甚至可能导致稳定性问题。

然而,对您的问题的简短回答是,没有办法告诉“系统”您的进程不应被终止或在关闭时重新启动。这是完全由内核级任务管理器做出的选择。

顺便说一句,你为什么要这么做?我问这个是因为我认为你没有考虑清楚。请记住,与 IOS 所有者不同,IOS 所有者习惯并期望对其设备的完全控制权在 Apple 手中(无论好坏),Android 所有者期望并且将控制他们的设备。如果您试图从他们那里拿走它,您可能会发现大多数人会卸载您的服务。如果您为此收取费用,则要求他们退还款项。

希望对您有所帮助。

关于android - 强制停止后如何保持服务运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6254161/

相关文章:

android - 带有自定义适配器的字符串数组

android - flutter 1.9.1+hotfix.2 - 构建 appbundle 失败,但实际上生成了一个 appbundle

java - Google 登录按钮空指针异常

android - FireStorePagingAdapter 未收到实时更新

java - 在 Windows 和 Android 上使用 FTD2xx 驱动程序

java - 适用于所有 Android 版本的通用 Android 对象样式?

Android 应用不应在接收 Intent 时启动

android - 如何阻止 whatsapp 将字符串解释为超链接

android - 使用 v7 库时更改 ActionBarDrawer 切换图标

android - `dependencies` 和 `androidDependencies` 之间的输出不同