如何解决App无法收到android开机广播

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决App无法收到android开机广播相关的知识,希望对你有一定的参考价值。

  今天发现在android2.2时写的一款程序运行在android4.0上的时候无法接受开机广播(ACTION_BOOT_COMPLETED)。

  后来发现是没有添加<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>的问题。

  在3.1以前,android对自启动管理不是很严格,只要你的BroadcastReceiver的IntentFilter声明了<action android:name="android.intent.action.BOOT_COMPLETED" />

  就可以接收到开机广播。但是在android3.1对程序的自启动进行了规范(官方文档请点击此处)。

  假如我们没有指定use-permission就无法收到开机广播。

  如果你也碰到了这个问题,检查一下自己是不是忘记添加permission了吧^_^
参考技术A 用静态的方式注册广播就什么情况下都可以收到广播了;
如果在service里动态注册广播,当service已经运行完了与广播解除关系才会收不到广播的。这个问题的解决办法可以从onStart里startservice,再发广播就行了.
参考技术B 注册广播,在service里向系统注册,必须是隐式注册,即在AndroidManifest里注册,注册一个service,同样在AndroidManifest里注册,运行一次程序,

以上是关于如何解决App无法收到android开机广播的主要内容,如果未能解决你的问题,请参考以下文章

android再发一次开机广播

Android BroadcastReceiver

Android App 开机自启动

android 接受开机广播

android接受不到开机广播

Android入门第48天-静态BroadCast之接受开机广播