我有一个后台服务,它在kitkat中运行总是等待足够长的时间:logcat中的ServiceRecord消息。但在之前版本的Android中,我的应用程序运行顺畅,没有任何问题。
有时我的服务会在Kitkat中被自动杀死。
答案 0 :(得分:11)
这是由ActivityServices的“Serialize running of background services”修改引起的。
实施#10744011:序列化后台服务的运行 添加了一些代码给活动管理器以跟踪 正在启动并限制可以的数量的服务 同时发起。这只是发挥作用 具体情况:服务启动时是后台 请求(因此时间并不重要),而且其过程不是 已经高度优先运行。
在这种情况下,我们有一个当前的服务列表 发射,当它变得太大时,我们开始推迟 推出未来的服务直到目前正在推出的服务 结束。
这有一些重要的调整参数:有多少 我们允许同时启动的后台服务(目前 1在低ram设备上,3在其他设备上),以及我们多久 在考虑它之前等待后台服务运行 一个更长期运行的服务,继续下一个待定 发射(目前设定为15秒)。
https://github.com/android/platform_frameworks_base/commit/9210bc85545f31973c957b5179e6a82d05f473c6