今天发现在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了吧^_^