在 Android 中注册 BOOT_COMPLETED 接收器 8

Registering BOOT_COMPLETED receiver in Android 8

我们即将更新我们的应用程序 Android API 26. 在关于 Broadcast receiver 的文档中说

Apps that target Android 8.0 or higher can no longer register broadcast receivers for implicit broadcasts in their manifest

隐式广播接收器描述为

a broadcast that does not target that app specifically. For example, ACTION_PACKAGE_REPLACED

所以我假设 android.intent.action.BOOT_COMPLETED 被认为是隐式接收者。

此外,它还声明必须使用 Context.registerReceiver()Activity 中注册隐式接收者。但这对于正在侦听 BOOT_COMPLETED 事件的接收器来说没有意义。

处理这个问题的正确方法是什么?我可以将此接收器保留在我的清单中吗?

ACTION_BOOT_COMPLETEDthe implicit broadcast whitelist 上,因此您可以在清单中注册它。

BOOT_COMPLETED 仍然被接受。

https://developer.android.com/guide/components/broadcast-exceptions.html

无需更改任何内容。确保在 Android 8.

中进行测试