Android学习——BroadCast(二)
这篇博文介绍有序广播的使用
有序广播的发送
和普通广播完全相同,只需要更换发送的方式即可
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(二)的更多相关文章
- 【Android】完善Android学习(二:API 2.3.4)
备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...
- Android学习笔记二之初始Activity
初识Activity,跟着教程学习敲了一遍这一章的内容,下面根据目录结构总结知识点: 一.活动是什么 上篇博文中我们提到了Android四大组件,其中有一个Activity,我们将之称为活动.活动是最 ...
- Android学习总结(二)——Service基本概念和生命周期
好了,前面我们已经学习了Activity的知识,相信大家也有一定的理解,但是还是不能放松,Android四大组件,我们才学习了一个而已,接下我们继续学习Service.计划总结如下内容: 一.Serv ...
- android 学习随笔二十一(内容提供者 )
一.内容提供者* 应用的数据库是不允许其他应用访问的* 内容提供者的作用就是让别的应用访问到你的私有数据* 自定义内容提供者,继承ContentProvider类,重写增删改查方法,在方法中写增删改查 ...
- Android学习(二)
学号 20189214 <Android程序设计>第七周学习总结 教材学习内容总结 监听 设置点击监听的5种方式 方法1:直接用匿名内部类 这是最常用的一种方法,直接setXXXListe ...
- Android学习——BroadCast(一)
初识广播 BroadCast即为广播,为安卓四大组件之一,用于在应用程序和Activity间传输信息.一条广播,分为发送和接收两部分,发送方通过Intent存储信息,并进行发送.接收方通过BroadC ...
- Android学习十二---在android上实现图像匹配
一.效果图及功能描述 效果图 点击ShowImg后 点击match,然后点击showmatch,可以不断点击showmatch. 主要功能描述:显示在SD卡上已经存在的图片test.jpg,根据图片在 ...
- Android学习(二十三)SubMenu 子菜单
一.SubMenu子菜单 和功能菜单相似,但是可以添加子菜单. 二.实现步骤: 1.通过onCreateOptionsMenu方法创建子菜单,可以通过代码动态创建,也可以通过xml进行创建. 2.通过 ...
- Android学习(二十二)ContentMenu上下文菜单
一.上下问菜单 在某个菜单项上长按,会弹出一个菜单,这个就是上下文菜单.有点类似与Windows系统中的右键菜单. 二.上下文菜单的内容 1.标题 2.图标 3.菜单项 4.对应的菜单事件 三.Opt ...
随机推荐
- 2019美国大学生数学建模竞赛B题(思路)
建模比赛已经过去三天了,但留校的十多天里,自己的收获与感受依然长存于心.下面的大致流程,很多并没有细化,下面很多情况都是在假设下进行的,比如假设飞机能够来回运送药品,运货无人机就只运货,在最大视距下侦 ...
- selenium+Python(浏览器操作)
1 .浏览器最大化我们知道调用启动的浏览器不是全屏的,这样不会影响脚本的执行,但是有时候会影响我们“观看”脚本的执行. #coding=utf-8 from selenium import webdr ...
- css3 appearance在iphone上面的问题
最近在做项目的时候,发现iphone上中 <input type="button">在修改了css样式之后还是保留自带的一些属性,然后在安卓手机上不会出现这样的问题, ...
- unity 解决与永久解决行尾不一致报警
虽然不影响使用,但一堆警告信息着实让人不爽,继续往下看. 用Notepad2的“查看->显示换行编码"查看发现通过Unity3D编辑器创建的脚本文件是以"LF"结尾 ...
- 安装和部署Jenkins
安装和部署Jenkins 环境 操作系统:ubuntu 14.04.4 LTS 下载Jenkins wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/ ...
- Java Hashtable 源码(JDK8)
记录了HashMap也来看看Hashtable吧,最近打算换份实习,所以想看看书回顾一下,不然就快记不得了.....囧啊囧啊,记性太差怎么破??? Hashtable里面的一些变量: Entry< ...
- Android Studio修改程序包名
我也是在网上看到的,并且这个方法只能这么修改:cn.example.xxx修改为cn.example.yyy ,修改到根目录下... refactor---rename修改 然后clean,buil ...
- haproxy 503 service unavailable no server is avaible to handle this request
原因: haproxy 对server检测时是对默认页面进行检测,如果没有默认错误,则直接报503错误,不会转发到相应的server上去. 解决方法: 添加 option httpchk 检测页面位置 ...
- Golang教程:常量
定义常量 常量(constant)表示固定的值,比如:5,-89,"I love Go",67.89 等等. 考虑如下程序: var b string = "I love ...
- SIMD
SIMD 概述 数据类型 静态方法:数学运算 静态方法:通道处理 静态方法:比较运算 静态方法:位运算 静态方法:数据类型转换 实例方法 实例:求平均值 概述 SIMD(发音/sim-dee/)是“S ...