android广播8.0之后无法正常接收的原因与解决方法

本文深入解析安卓广播机制,包括发送者与接收者的关系,有序广播与无序广播的区别,以及静态注册与动态注册的实现方式。同时,文章还探讨了自定义广播在Android 8.0后的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

广播分为发送者与接收者,广播接收者是安卓的四大组件之一。活动和服务这两个组件都可以发送广播。

广播的发送,按照发送方式来区分,安卓有有序广播和无序广播,有序广播发送之后,系统根据广播接收者的优先级进行派发,接收者可以修改广播传递的数据且可以终止广播的数据。无序广播听说也会跟着优先级来进行派发广播,但是无法修改广播传递的数据且无法终止广播。

听说按照某种方式来区分,还有串行广播和并行广播,这个在官网是没有找到,估计是读了源码的中国人自己总结出的概念,目前这一块我还需要研究一下。

广播的接收者,按照注册方式来区分,有静态注册与动态注册,静态注册就是在Manifest文件中进行注册,动态注册就是在接收广播的组件,一般是活动或者服务中进行动态的注册。

android在8.0之后对于广播发送方式有了新的要求,即自定义广播的发送有了新的要求,首先对于静态注册的广播,发送广播的代码

it = new Intent("com.wind.action.ROTATION_CHANGED");
//这行代码就是要增加的,第一个参数是应用的包名,第二个参数是广播接收者在项目中的绝对文件路径
it.setComponent(new ComponentName("com.hejun.tesofbr",
        "com.hejun.View.MyReceiver"));
sendBroadcast(it);

对于动态注册的广播,广播接收者的注册与广播的发送则和以前一样

 

 

android官方文档的中文版,再也不用担心跟不上android世界的步伐了https://developer.android.google.cn/about/versions/oreo/android-8.0https://developer.android.google.cn/about/versions/oreo/android-8.0

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值