BroadcastReceiver-有序广播

Order broadcasts 有序广播
使用:context.sendOrderBradcast() 有序广播比较特殊,它每次只发送到优先级较高的接收者那里
然后由高到低,高的可以阻止低的 短信拦截
在注册广播的时候可以使用优先级android:priority属性 这个属性的范围在 -1000到1000,
数值越大优先级越高
obortBradcast();停止传递

有序广播示例:
通过按钮点击发送一个有序广播

//发送一个有序广播
    public void sendOrderBroad(View v){
        Intent intent=new Intent("com.qq.order");
        intent.putExtra("info", "有序接收中。。。");
        //null表示接收此广播不需要权限
        this.sendOrderedBroadcast(intent, null);
    }

新建一个广播接收者1(1接收2传递过来值,因为2的优先级高)

public class MyOderBroad extends BroadcastReceiver{

    @Override
    public void onReceive(Context arg0, Intent intent) {
        // TODO Auto-generated method stub
        Bundle bundle = getResultExtras(false);
        String st = bundle.getString("in");
        Toast.makeText(arg0, st, 1).show();

    }

}

新建一个广播接收者2(可以向1发消息,也可以终止广播)

public class MyOderBroad2 extends BroadcastReceiver{

    @Override
    public void onReceive(Context arg0, Intent intent) {
        // TODO Auto-generated method stub
        String st = intent.getStringExtra("info");
        Toast.makeText(arg0, "有序广播2", 1).show();
        //this.abortBroadcast();//如果它的优先级高,就中断有序广播  (只有有序广播能中断)
        Bundle data=new Bundle();
        data.putString("in", "高传下低");  //MyOderBroad就会接收
        this.setResultExtras(data);
    }

}

在xml中注册

 <receiver 
            android:name="com.example.day0706mybroadcasereceiver.MyOderBroad"
            android:enabled="true"
            android:exported="true"
            >
            <!-- 和接收者action一致 -->
            <intent-filter 
                android:priority="100">
                <action android:name= "com.qq.order"/>
            </intent-filter>
        </receiver>

        <receiver 
            android:name="com.example.day0706mybroadcasereceiver.MyOderBroad2"
            android:enabled="true"
            android:exported="true"
            >
            <!-- 和接收者action一致 -->
            <intent-filter android:priority="200">
                <action android:name= "com.qq.order"/>
            </intent-filter>

        </receiver>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值