当你要适配8.0及以后的设备时,旧代码无法收到广播
Beginning with Android 8.0 (API level 26), the system imposes additional restrictions on manifest-declared receivers.
If your app targets Android 8.0 or higher, you cannot use the manifest to declare a receiver for most implicit broadcasts (broadcasts that don't target your app specifically). You can still use a context-registered receiver when the user is actively using your app.
译文:
从Android8.0开始(APILevel26),系统对清单声明的接收者施加额外的限制。如果您的应用程序以Android8.0或更高版本为目标,则不能使用清单来为大多数隐式广播(不是针对应用程序的广播)声明接收器。当用户正在积极使用应用程序时,您仍然可以使用上下文注册接收器。
解决方案
1.在清单文件中给广播指定具体的广播处理类,通过name属性设定
以上是内部类广播name属性的写法,如果通过新建广播类单独一个类文件的方式则为:
包名.广播名
2.设置要发送给哪个广播类处理
网友评论