android – 在Marshmallow上杀死进程但在Lollipop上没有

前端之家收集整理的这篇文章主要介绍了android – 在Marshmallow上杀死进程但在Lollipop上没有前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有一个现有的应用程序(几年前)在设备启动时启动.
在Lollipop上一切都很好,但是在Marshmallow上,应用程序启动后大约10或20秒左右,这个过程正在被杀死.
在logcat中没有任何迹象表明存在任何异常,当进程被终止时唯一记录的是这一行:

“我/ ActivityManager:杀戮3100:com.company.E / u0a85(adj 15):空#17”

知道什么是“空#17”可能意味着什么是重要的.或者我有什么建议可以找出它被杀的原因?

解决方法

与@CommonsWare评论一样,这意味着您的流程没有正在运行的组件. ActivityManager将保持空进程以加速将来的启动,但只有 a limited number of them – 设备上默认的32/2 = 16.你的应用是#17,so it is killed.

对于最大数量apps that have been empty for more than 30 minutes,还有一个(下限)限制.但这会给你一个“为X s为空”的原因字符串,而不是“空#X”.

这不是Marshmallow的新功能.不知道为什么你以前没有经历过.也许你有,但你没有注意到它.也许它发生得太晚了,你有时间完成你的工作.或者您的设备的Lollipop / Marshmallow构建可能在某种程度上有所不同(例如,在引导时启动并且变为空的进程数量增加,或ProcessList.java中的不同限制配置?).

无论如何,如果您没有活动组件,则无法依赖您的进程保持活动状态.为您的工作启动服务 – 确保在完成后停止服务.

猜你在找的Android相关文章