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

有序广播的发送


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

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. (转)Shell分析服务器日志

    一.目录 转载链接:https://mp.weixin.qq.com/s/W1ekSiHgbGInqQ9HmZaJDA 自己的小网站跑在阿里云的ECS上面,偶尔也去分析分析自己网站服务器日志,看看网站 ...

  2. CSAPP阅读笔记-汇编语言初探(算术和逻辑操作类指令)-来自第三章3.5的笔记-P128-P135

    1.算术和逻辑操作类指令分四类:加载有效地址,一元操作,二元操作和移位,如下: 2. leaq指令,类似mov指令,它左侧的数看似是给出一个地址,在内存中从给定的地址取操作数,传给右边的目的地.但其实 ...

  3. 判断title(title_is)

    判断 title 获取页面 title 的方法可以直接用 driver.title 获取到,然后也可以把获取到的结果用做断言.本篇介绍另外一种方法去判断页面 title 是否与期望结果一种,用到上一篇 ...

  4. Respone笔记

    1 设置定时刷新的头 //设置定时刷新的头 response.setHeader("refresh", "5;url=http://www.baidu.com" ...

  5. nginx配置服务器负载均衡

    upstream servers { ip_hash; #hash,ip轮训 server localhost:8400; } server { listen 80; server_name loca ...

  6. 在windows服务器上设置301、伪静态(wordpress)

    新建一个httpd.ini文件,插入代码: [ISAPI_Rewrite] RewriteCond Host: ^wuchao\.cc$ RewriteRule (.*) http\://www\.w ...

  7. JavaScript中类型检测

    文章首发: http://www.cnblogs.com/sprying/p/4349426.html 本文罗列了一般Js类型检测的方法,是构建Js知识体系的一小块,这篇文章是我很早之前总结的. 一. ...

  8. Spring Boot学习笔记-配置devtools实现热部署

    写在前面 Spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用. de ...

  9. NPOI excel导出快速构建

    直接上代码,这个是一个在webFrom中的例子,要请求的页面是ashx public void ExportVisaFeeAll(HttpContext context) { try { string ...

  10. Js 合并 table 行 的实现方法

    Js 合并 table 行 的实现方法 需求如下: 某公司的员工档案,如下,  经理看员工的信息不是很清晰: 姓名 所在学校 毕业时间 张三 小学 2000 张三 中学 2006 张三 大学 2010 ...