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轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...