android之旅16 自定义广播与无序有序广播

  • 发送广播
//发送广播,其实很少用到,除非很大型的APP或者平台。
public void click(View v){
    Intent intent = new Intent();
    intent.setAction("any.is.possible");//广播类型必须定义
    sendBroadcast(intent);
}

// myReceiver接收广播,在清单文件中定义,Action必须匹配
public void myReceiver extends BroadcastReceiver{
    public void onReceive(Context ctx, Intent intent){

    }
}
  • 无序广播:同时收到,随机调用先后,系统不保证调用,sendBroadcast是无序广播,而且无法在广播里面修改数据
  • 有序广播:接收有顺序,按接收顺序调用
// 发送有序广播
public void  click(View v){
    Intent intent = new Intent();
    intent.setAction("anything.is.possible");
    sendOrderedBroadcast(intent, null, new FinalReceiver(), null, 0, "msg content", null);
}

//最终接收者,一定会收到,且数据是最后修改的数据
// 打电话的广播就是最终接收者,abortBroadcast也没用
class FinalRecevier extends BroadcastReceiver{
    public void onReceive(Context c, Intent t){

    }
}
  1. 接收者
<receiver>
    <intent-filter priority="1000">
        <action android:name="..."/>
    </intent-filter>
</receiver>
public OneReciver extends ...{
    public void onRecevie(...){
        String txt = getResultData();
        setResultData(txt);//设置广播数据,无序广播数据没用
        abortBroadcast();// 广播丢弃,后续接收不到
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值