这篇博文介绍有序广播的使用

有序广播的发送


和普通广播完全相同,只需要更换发送的方式即可

ordered.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
Intent intent=new Intent();
intent.putExtra("test","有序广播");
intent.setAction("NORMAL"); //设定广播的Action,用于过滤
sendOrderedBroadcast(intent,null);
}
});

有序广播的消息传递和截断


在有序广播的传播过程中,优先级高的Receiver可以传递消息给低优先级的Receiver,甚至截断广播,具体操作如下:

传递消息:

public class BC1 extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String text=intent.getStringExtra("test");
Toast.makeText(context,"BC1"+text,Toast.LENGTH_SHORT).show();
Bundle bundle =new Bundle();
bundle.putString("test","修改");
setResultExtras(bundle);
}
}
public class BC2 extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String text=intent.getStringExtra("test");
Bundle bundle=getResultExtras(true);
String s=bundle.getString("test");
Toast.makeText(context,"BC2"+text+s,Toast.LENGTH_SHORT).show(); }
}

在高优先级的Receiver中,通过Bundle数据包传输数据,并通过setResultExtras方法来发送数据。在低优先级的接受者中,则通过getResultExtras来获取Bundle数据包,进而获取数据。

截断消息:

public class BC1 extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String text=intent.getStringExtra("test");
Toast.makeText(context,"BC1"+text,Toast.LENGTH_SHORT).show();
abortBroadcast();
}
}

只需要在高优先级的接收者中调用abortBroadcast方法即可。

Android学习——BroadCast(二)的更多相关文章

  1. 【Android】完善Android学习(二:API 2.3.4)

    备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...

  2. Android学习笔记二之初始Activity

    初识Activity,跟着教程学习敲了一遍这一章的内容,下面根据目录结构总结知识点: 一.活动是什么 上篇博文中我们提到了Android四大组件,其中有一个Activity,我们将之称为活动.活动是最 ...

  3. Android学习总结(二)——Service基本概念和生命周期

    好了,前面我们已经学习了Activity的知识,相信大家也有一定的理解,但是还是不能放松,Android四大组件,我们才学习了一个而已,接下我们继续学习Service.计划总结如下内容: 一.Serv ...

  4. android 学习随笔二十一(内容提供者 )

    一.内容提供者* 应用的数据库是不允许其他应用访问的* 内容提供者的作用就是让别的应用访问到你的私有数据* 自定义内容提供者,继承ContentProvider类,重写增删改查方法,在方法中写增删改查 ...

  5. Android学习(二)

    学号 20189214 <Android程序设计>第七周学习总结 教材学习内容总结 监听 设置点击监听的5种方式 方法1:直接用匿名内部类 这是最常用的一种方法,直接setXXXListe ...

  6. Android学习——BroadCast(一)

    初识广播 BroadCast即为广播,为安卓四大组件之一,用于在应用程序和Activity间传输信息.一条广播,分为发送和接收两部分,发送方通过Intent存储信息,并进行发送.接收方通过BroadC ...

  7. Android学习十二---在android上实现图像匹配

    一.效果图及功能描述 效果图 点击ShowImg后 点击match,然后点击showmatch,可以不断点击showmatch. 主要功能描述:显示在SD卡上已经存在的图片test.jpg,根据图片在 ...

  8. Android学习(二十三)SubMenu 子菜单

    一.SubMenu子菜单 和功能菜单相似,但是可以添加子菜单. 二.实现步骤: 1.通过onCreateOptionsMenu方法创建子菜单,可以通过代码动态创建,也可以通过xml进行创建. 2.通过 ...

  9. Android学习(二十二)ContentMenu上下文菜单

    一.上下问菜单 在某个菜单项上长按,会弹出一个菜单,这个就是上下文菜单.有点类似与Windows系统中的右键菜单. 二.上下文菜单的内容 1.标题 2.图标 3.菜单项 4.对应的菜单事件 三.Opt ...

随机推荐

  1. storm(5)-分布式单词计数例子

    例子需求: spout:向后端发送{"sentence":"my dog has fleas"}.一般要连数据源,此处简化写死了. 语句分割bolt(Split ...

  2. 使用FCM服务

    1.建谷歌账号 2.在console上新建应用 https://console.firebase.google.com 并下载私钥.json 3.创建测试网页应用 (或app应用) C#服务端: 用H ...

  3. Python批量修改文件名(os库)

    问题: 在某一文件夹内有97个sql文件,全部都以统一格式命名,例如“A201222-广州李小龙纪念协会-1-广州李小龙纪念协会-2018.AUD” 由于有两段重复了,而且中间的“1”也没有意义,需要 ...

  4. vue-quill-editor html编辑器

    在Vue项目使用quill-editor带样式编辑器(更改插入图片和视频)  https://www.cnblogs.com/zhengweijie/p/7305903.html   vue-quil ...

  5. iOS设备的屏幕分辨率

    全部列在这里吧.方便自己方便别人.保持更新…… iPhone: iPhone 1G320x480 iPhone 3G320x480 iPhone 3GS320x480 iPhone 4640x960 ...

  6. unity2018的坑点

    发布后有的电脑无法运行exe程序(反正我的电脑不行) 删除发布出来的一个叫UnityCrashHandler64.exe即可运行

  7. 在ubuntu下使用Eclipse搭建Hadoop开发环境

    一.安装准备1.JDK版本:jdk1.7.0(jdk-7-linux-i586.tar.gz)2.hadoop版本:hadoop-1.1.1(hadoop-1.1.1.tar.gz)3.eclipse ...

  8. Parsing Failure in config.xml: java.lang.IllegalArgumentException: In production mode, it's not allowed to set a clear text value to the property

    Step1). in your "setDomainEnv.sh" script set the "PRODUCTION_MODE=false" or use ...

  9. oracle 自动表分区

    Oracle 新功能自动分区: 实现代码: create table t_interval partition by range(created)//dba_objects 视图的一个字段 inter ...

  10. moment常用操作

    1.返回当前日期截止时的时间戳: post.createtime = moment().unix(); let stime = moment(moment.unix(moment().unix()). ...