在Android 8中注册BOOT_COMPLETED接收器

时间:2017-08-31 12:51:17

标签: android broadcastreceiver android-8.0-oreo

我们即将更新我们的App Android API 26.在有关Broadcast receiver的文档中,它说明了

  

针对Android 8.0或更高版本的应用无法再为其清单中的隐式广播注册广播接收器

隐式广播接收器被描述为

  

专门针对该应用的广播。例如,ACTION_PACKAGE_REPLACED

所以我假设android.intent.action.BOOT_COMPLETED被认为是一个隐含的接收者。

此外,它指出隐式接收器必须使用ActivityContext.registerReceiver()内注册。但对于正在侦听BOOT_COMPLETED事件的接收器而言,这是没有意义的。

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

2 个答案:

答案 0 :(得分:11)

仍然接受BOOT_COMPLETED。

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

无需改变任何东西。确保您在Android 8中进行测试。

答案 1 :(得分:8)

ACTION_BOOT_COMPLETED位于the implicit broadcast whitelist,因此您可以在清单中注册。