Android四大组件之broadcastreceiver(广播)

2017-01-14 19:44:46来源:CSDN作者:qq_36798516人点击

广播:

广播分为无序广播和有序广播,其中有序广播又分为动态有序广播和静态有序广播,无序广播与有序广播类似。

有序广播与无序广播区别:1.有序广播有优先级,优先级大的先执行,setPriority来设置优先级的值   2.有序广播发送方法为sendOrderedBroadcast(intent, null);无序广播发送方法为sendBroadcast(intent);

动态广播与静态广播的区别:动态广播在activity中注册,而静态广播在AndroidMainifest中注册;

动态有序注册示例代码:

               //新建一个Java类,继承broadcasrtrecevier,实现方法,然后在activity中 实例化广播对象
youxudt = new Youxudt1();

                        //创建intentfilter对象
IntentFilter filter_super = new IntentFilter();
//通过对象设置频道
filter_super.addAction("youxudt");
// 设置优先值
filter_super.setPriority(20);
//动态注册广播第一个参数是广播类创建对象的名字,第二个参数是filter对象
registerReceiver(youxudt, filter_super);
youxudt2 = new Youxudt2();
IntentFilter filter_super2 = new IntentFilter();
filter_super2.addAction("youxudt");
filter_super2.setPriority(30);// 优先级,范围-1000~1000
            //动态注册广播的方法第一个参数是广播类创建对象的名字,第二个参数是filter对象
registerReceiver(youxudt2, filter_super2);
//发送广播,只发送一次就可以
Intent intent5 = new Intent();
//两个频道相同,优先级大的先执行,参数为频道
intent5.setAction("youxudt");// action是频道
// 有序广播发送方法为sendorderedBroadcast
sendOrderedBroadcast(intent5, null);

静态有序注册示例代码:

//在Mainifest中

 <!-- 有序广播 -->
        <receiver android:name="com.example.guangbo.Youxu" >
            <intent-filter android:priority="100" >
                <action android:name="com.youxu1" />
            </intent-filter>
        </receiver>
        <!-- 有序广播 -->
        <!-- priority数值越大越优先 -->
        <receiver android:name="com.example.guangbo.Youxu2" >
            <intent-filter android:priority="20" >
                <action android:name="com.youxu1" />

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台