22.广播BroadcastReceiver2

来源:互联网 发布:医学英语软件 编辑:程序博客网 时间:2024/06/07 03:33

一.自定义有序广播

自定义无序广播链接

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();







原创粉丝点击