android广播代码汇总二__有序广播
分析
普通广播(Normal Broadcast):
一,优缺点:和有序广播的优缺点相反!
二,发送广播的方法:sendBroadcast()
有序广播(Ordered Broadcast):
一,优缺点
优点:
1,按优先级的不同,优先Receiver可对数据进行处理,并传给下一个Receiver
2,通过abortBroadcast可终止广播的传播
缺点:效率低
二,发送广播的方法:sendOrderedBroadcast()
三,优先接收到Broadcast的Receiver可通过setResultExtras(Bundle)方法将处理结果存入Broadcast中,
下一个Receiver 通过 Bundle bundle=getResultExtras(true)方法获取上一个 Receiver传来的数据
程序效果:点击按钮,两个Receiver接收同一条广播,在logcat中打印出数据(按照Receiver的优先顺序,Receiver2先,Receiver1后)
代码
1 注册广播
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.song"android:versionCode="1"android:versionName="1.0" ><uses-sdk android:minSdkVersion="8" /><applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name" ><activityandroid:label="@string/app_name"android:name=".C48_BroadcastActivity" ><intent-filter ><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter><!--优先级的设定 MyReceiver2大于MyReceiver1,优先级的范围-1000~1000 --></activity><receiver android:name=".MyReceiver1"><intent-filter android:priority="200"><action android:name="com.song.123"/></intent-filter></receiver><receiver android:name=".MyReceiver2"><intent-filter android:priority="1000"><action android:name="com.song.123"/></intent-filter></receiver></application></manifest>
2 接收广播
package com.song;
//优先接到广播,bundle绑上key为b的数据
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;public class MyReceiver2 extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubSystem.out.println("receiver2");
// context.getSystemService(name);Bundle bundle=intent.getExtras();bundle.putString("b", "bbb");System.out.println("a="+bundle.get("a"));setResultExtras(bundle);//切断广播
// abortBroadcast();}}
package com.song;
//接收从receiver2传来的广播,包含key为a和b的数据
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;public class MyReceiver1 extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubSystem.out.println("receiver1");//要不要接受上一个广播接收器receiver2传来的的数据Bundle bundle=getResultExtras(true);System.out.println("a="+bundle.getString("a")+",b="+bundle.getString("b"));}}
3 发送广播
package com.song;
//发送广播,bundle绑上key为a的数据
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;public class C48_BroadcastActivity extends Activity {/** Called when the activity is first created. */Button button;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);button=(Button)findViewById(R.id.button);button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intent=new Intent("com.song.123");Bundle bundle=new Bundle();bundle.putString("a", "aaa");intent.putExtras(bundle);//有序广播sendOrderedBroadcast(intent, null);}});}
}
4 注销广播
@Overrideprotected void onDestroy() {super.onDestroy();unregisterReceiver(localReceiver);}
android广播代码汇总二__有序广播相关推荐
- android广播代码汇总一__无序广播
广播 1 注册广播 LocalReceiver localReceiver = new LocalReceiver();IntentFilter filter = new IntentFilter() ...
- 160多个android开源代码汇总
CreditsRoll 类似星球大战字幕效果的TextView 项目地址:https://github.com/frakbot/CreditsRoll android-process-buton 带加 ...
- UI福利包——160多个android开源代码汇总
查看原文出处 第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageV ...
- Android 进阶技术汇总二: 流行框架组件 方案汇总
前言:应用框架组件概述: 主要介绍移动应用开发涉及 推送.语音识别.音视频.图片.地图.定位.广告接入.后台统计分析.HTTP通信.分享.支付.数据解析.序列化.消息总线等 WebApp Cordov ...
- 饭否android客户端,fanfou(饭否) android客户端 代码学习二
FanfouWidget.class 继续 代码学习1 因为重新编辑文章经常出现格式错乱,所以以后先写在记事本里面了 继续上次的发送消息 // 发送消息给widget Intent reflogin ...
- android 无法接收广播_别告诉我你不认识Android中广播接收者(二)
前面我们了解了什么是广播接收者与广播接收者的创建,这一次我们要接着继续去了解广播接收者的相关知识,这些知识包括广播接收者的注册.自定义广播与广播的类型. 当我们学习完广播接收者之后,该如何才能让它起到 ...
- android 有序广播例子,有序广播的实例解析--android案例《拦截有序广播》
有序广播: 使用有序广关健处在于定义接收者的优先权,以下代码中有三个类接收广播, 案例<拦截有序广播> 1.布局文件 上述布局文件,定义了一个button按钮,并且为按钮注册了一个oncl ...
- 17_Android中Broadcast详解(有序广播,无序广播)最终广播,Bundle传递参数,传递参数的时候指定权限
1 Broadcast是Android中的四大组件之一,他的用途很大,比如系统的一些广播:电量低.开机.锁屏等一些操作都会发送一个广播. 2 广播被分为两种不同的类型:"普通广播( ...
- android 广播的权限,Android四大组件详解之BroadcastReceiver广播接收者
Android四大组件详解---BroadcastReceicer广播接收者 广播有两个角色,一个是广播发送者,另一个是广播接收者. 广播按照类型分为两种,一种是全局广播,另一种是本地广播 全局广播: ...
最新文章
- 电大计算机dm编写程序,中央电大计算机组成原理与汇编语言试题.docx
- 伪类如何动态在html设置样式,用js实现before和after伪类的样式修改的示例代码
- 第67课 选择排序 例67.1 《小学生C++编程入门》
- Java POJO Bean 对象与 Web Form 表单的自动装配
- 页面滚动可视区域的获取
- add p4 多个文件_Python实例:对文件夹图片批量添加logo操作
- 在命令行英雄的浏览器大战中,JavaScript令人惊讶地崛起
- 看完这篇你就懂了深度学习的具体流程和代码该怎么写了!(Deep Learning Onramp)
- 自由手写体字帖pdf_沐瑶随心手写体:随心是源于自由的快乐 免费商用手写字体...
- 计算机教师计算机网络面试题,初中信息技术教师资格面试真题及答案:IP地址...
- 鸿蒙形容欣欣向荣发展,形容发展超迅速的成语
- vue中的混入mix
- Android音频数据格式概述
- Excel筛选后无法复制粘贴成数值解决办法
- postman测试上传文件(上传图片)
- oracle误删了表怎么恢复数据,oracle误删除表或者表数据的恢复方法总结
- 【C语言进阶】数组、指针、函数——传参篇
- nvidia jetson agx xavier运行 OpenCL
- 极客日报:《英雄联盟》回应服务器崩了:官方直接回退了旧版本;Deno 1.19 发布|极客头条
- vCenter Server CA证书下载
热门文章
- java设计模式之美_《设计模式之美》-笔记
- python batch_size_深度学习中的batch的大小对学习效果有何影响?
- 云数据库mysql 慢查询_Mysql慢查询
- OpenShift 4 之使用https协议访问Route
- .NET配置文件在写入时损坏
- C#中的深度学习:ML.NET中具有预训练模型的硬币识别
- 如何在C#中使用反射获取集合元素类型
- Linux sudo 被曝提权漏洞,任意用户均能以 root 身份运行命令
- 中国计算机学会推出 CSP 非专业级别认证
- 开源软件没你想象中那么安全,Java 开发者尤其要警惕