22.广播BroadcastReceiver2

本文详细介绍了Android中自定义有序广播的概念与实现方法,包括如何设置广播优先级、改变广播内容及阻止广播传播等核心功能。

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

一.自定义有序广播

自定义无序广播链接

1.概念

有序广播:可以设置他的顺序,可以设置优先级。
因为1号接收者是动态(优先级要比2号高)的,2号接收者是静态的。所以1号先收到消息
如果非要让2号先收到,就设置2号的优先级

有序广播还可以实现一个功能:可以改变广播的内容


2.具体代码实现

a.发送者

MainActivity.java

关键代码如下

 sendOrderedBroadcast(intent,null);




运行效果



b.接收者2号(静态的)

关键代码

  <receiver android:name=".MyReceiver02">
            <intent-filter
                android:priority="1000"><!--取值:负1000到正1000  取值越大优先级越高-->
                <action android:name="com.zking.android21_sender.Hug"></action>
            </intent-filter>
  </receiver>



c.接收者1号(静态的)

关键代码

intentFilter.setPriority(998);


运行:



运行效果如下:




二.改变广播内容

改变1号接收者收到的内容
2号先收到,所以在2号接收者里面
先运行2号,点返回,在运行1号,点Home。再在发送者里面写发送的内容.
因为2号先收到,收到之后改内容

接收者2号关键代码

            Bundle bundle=new Bundle();
            bundle.putString("newContent",content+",开玩笑的,你阔以免费拥有,不需要花费");
            setResultExtras(bundle);
            //给1号接收者


接收者1号关键代码

                        //获取结果
                        Bundle bundle=getResultExtras(true);
                        String content=bundle.getString("newContent");
                        Log.i("test","广播接受者1号:"+content);


运行:先运行接收者2号,点返回。再运行接收者1号,点Home键。再在发送者里面写发送的内容。

运行效果如下:




三.阻止广播传播

关键代码如下:

abortBroadcast();







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值