1. 开机启动广播
大家都知道,1.申请权限 2.注册广播
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <receiver android:name=".StartServiceAtBootReceiver" android:enabled="true" android:exported="false" android:label="StartServiceAtBootReceiver"> <intent-filter> <action android:name="android.intent.action._BOOT_COMPLETED"/> </intent-filter> </receiver>
实际上, 不申请以下权限, 开机一样会启动。这可能是android的一个Bug。
android.permission.RECEIVE_BOOT_COMPLETED
参考:http://stackoverflow.com/questions/4635353/is-android-permission-receive-boot-completed-not-required
2. 屏幕开启/关闭广播
在Manifest.xml中注册不行,在代码中注册才行.
<receiver android:name="IntentReceiver"> <intent-filter> <action android:name="android.intent.action.SCREEN_ON"></action> </intent-filter> </receiver>
像这样注册,当屏幕点亮时,是无法接收到广播的。只有这样才行..
registerReceiver(new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { // ... } }, new IntentFilter(Intent.ACTION_SCREEN_ON));