在我的 Android 项目中,我创建了一个带有服务的自定义时钟小部件,其中包含广播接收器的实例和意图过滤器。每次到达 ACTION_TIME_TICK 时,广播接收器都会提供小部件的更新。当在 gradle 中将 targetSdkVersion 设置为 25 时,这非常有效。但是,如果我以 sdk 27 为目标,则服务会在几分钟后停止。我已阅读有关 Android O 中后台执行限制的文档,但我找不到任何对我的项目有用的方法。你有什么建议吗?
问问题
658 次
1 回答
0
您可以尝试一些事情,当它们一起使用时,应该能够切断所有空闲/待机/打盹模式(无论操作系统版本如何)。
- 使用 a
WakefulBroadcastReceiver
而不是普通的BroadcastReceiver
. 确保您包含WAKE_LOCK
正确使用它的权限。 使用
setExactAndAllowWhileIdle()
方法(在 API 23 及以上)为接收者安排 Intent:if (Build.VERSION.SDK_INT < 23) { if (Build.VERSION.SDK_INT >= 19) { setExact(...); } else { set(...); } } else { setExactAndAllowWhileIdle(...); }
于 2018-04-10T14:08:11.440 回答