自定义BroadcastReceiver 静态注册广播无法接收的问题

问题原因:

从android 8.0(API26)开始,对清单文件AndroidManifest.xml中静态注册广播接收者作了限制(官方对耗电量的优化,避免APP滥用广播的一种处理方式)。

除了少部分的广播仍支持静态注册(如开机广播),其余的都会出现失效的情况。

 //开机广播
<receiver
            android:name=".RebootReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
</receiver>

 

解决方法:

采用动态注册(代码注册)