2

是的,防止被低内存杀手杀死。AndroidManifest.xml 中是否有任何选项?

可能应用程序包含一项服务,该服务需要一直在后台运行。

我的应用程序放在 system/app 中,运行一项重要的服务。这是我们的设计。

有很多应用程序在运行,我无法控制其他人以节省内存,但我想要一种方法让Android不会杀死我,就像Phone app和SystemUi一样。

在 Android 中,oom_adi 较低的应用被杀死的可能性较小。为此,只需设置 ( application android:persistent="true")。

4

3 回答 3

4

有什么方法可以保护应用程序不被低内存杀手杀死?

并不真地。startForeground()如果您(和用户)认为您的服务是前台用户体验的一部分,则可以使用,尽管这会Notification在状态或系统栏中放置一个。

需要一直在后台运行

用户可以并且将随时摆脱您的服务(例如,通过在 Android 4.0+ 上的“最近任务”列表中滑动您的条目、通过任务杀手、通过设置中的强制停止)。真正需要永久服务的应用程序注定要失败。

于 2012-10-09T22:45:28.187 回答
1

Android 相当高效,擅长处理这样的场景;正如 Commonsware 上面指出的那样,如

用户可以并且将随时摆脱您的服务

您的应用程序无法控制用户,这就是 OP 遇到的问题,试图(相当微弱地)减轻最终用户的行为和选择!

与其浪费精力试图“击败”低内存杀手,不如 重新考虑和重新设计您的应用程序,使其不占用资源,这是 Android 介入并说“嘿,停止玩我的我已经向您的申请提供了宝贵的资源,否则我会杀了您”,从字面上看!

于 2012-10-09T23:59:36.663 回答
0

考虑使用警报而不是长时间运行的服务。大多数时候,您可以在没有服务的情况下完成同样的事情。

于 2012-10-09T23:15:56.837 回答