分析

普通广播(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广播代码汇总二__有序广播相关推荐

  1. android广播代码汇总一__无序广播

    广播 1 注册广播 LocalReceiver localReceiver = new LocalReceiver();IntentFilter filter = new IntentFilter() ...

  2. 160多个android开源代码汇总

    CreditsRoll 类似星球大战字幕效果的TextView 项目地址:https://github.com/frakbot/CreditsRoll android-process-buton 带加 ...

  3. UI福利包——160多个android开源代码汇总

    查看原文出处 第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageV ...

  4. Android 进阶技术汇总二: 流行框架组件 方案汇总

    前言:应用框架组件概述: 主要介绍移动应用开发涉及 推送.语音识别.音视频.图片.地图.定位.广告接入.后台统计分析.HTTP通信.分享.支付.数据解析.序列化.消息总线等 WebApp Cordov ...

  5. 饭否android客户端,fanfou(饭否) android客户端 代码学习二

    FanfouWidget.class 继续 代码学习1  因为重新编辑文章经常出现格式错乱,所以以后先写在记事本里面了 继续上次的发送消息 // 发送消息给widget Intent reflogin ...

  6. android 无法接收广播_别告诉我你不认识Android中广播接收者(二)

    前面我们了解了什么是广播接收者与广播接收者的创建,这一次我们要接着继续去了解广播接收者的相关知识,这些知识包括广播接收者的注册.自定义广播与广播的类型. 当我们学习完广播接收者之后,该如何才能让它起到 ...

  7. android 有序广播例子,有序广播的实例解析--android案例《拦截有序广播》

    有序广播: 使用有序广关健处在于定义接收者的优先权,以下代码中有三个类接收广播, 案例<拦截有序广播> 1.布局文件 上述布局文件,定义了一个button按钮,并且为按钮注册了一个oncl ...

  8. 17_Android中Broadcast详解(有序广播,无序广播)最终广播,Bundle传递参数,传递参数的时候指定权限

     1  Broadcast是Android中的四大组件之一,他的用途很大,比如系统的一些广播:电量低.开机.锁屏等一些操作都会发送一个广播. 2  广播被分为两种不同的类型:"普通广播( ...

  9. android 广播的权限,Android四大组件详解之BroadcastReceiver广播接收者

    Android四大组件详解---BroadcastReceicer广播接收者 广播有两个角色,一个是广播发送者,另一个是广播接收者. 广播按照类型分为两种,一种是全局广播,另一种是本地广播 全局广播: ...

最新文章

  1. 电大计算机dm编写程序,中央电大计算机组成原理与汇编语言试题.docx
  2. 伪类如何动态在html设置样式,用js实现before和after伪类的样式修改的示例代码
  3. 第67课 选择排序 例67.1 《小学生C++编程入门》
  4. Java POJO Bean 对象与 Web Form 表单的自动装配
  5. 页面滚动可视区域的获取
  6. add p4 多个文件_Python实例:对文件夹图片批量添加logo操作
  7. 在命令行英雄的浏览器大战中,JavaScript令人惊讶地崛起
  8. 看完这篇你就懂了深度学习的具体流程和代码该怎么写了!(Deep Learning Onramp)
  9. 自由手写体字帖pdf_沐瑶随心手写体:随心是源于自由的快乐 免费商用手写字体...
  10. 计算机教师计算机网络面试题,初中信息技术教师资格面试真题及答案:IP地址...
  11. 鸿蒙形容欣欣向荣发展,形容发展超迅速的成语
  12. vue中的混入mix
  13. Android音频数据格式概述
  14. Excel筛选后无法复制粘贴成数值解决办法
  15. postman测试上传文件(上传图片)
  16. oracle误删了表怎么恢复数据,oracle误删除表或者表数据的恢复方法总结
  17. 【C语言进阶】数组、指针、函数——传参篇
  18. nvidia jetson agx xavier运行 OpenCL
  19. 极客日报:《英雄联盟》回应服务器崩了:官方直接回退了旧版本;Deno 1.19 发布|极客头条
  20. vCenter Server CA证书下载

热门文章

  1. java设计模式之美_《设计模式之美》-笔记
  2. python batch_size_深度学习中的batch的大小对学习效果有何影响?
  3. 云数据库mysql 慢查询_Mysql慢查询
  4. OpenShift 4 之使用https协议访问Route
  5. .NET配置文件在写入时损坏
  6. C#中的深度学习:ML.NET中具有预训练模型的硬币识别
  7. 如何在C#中使用反射获取集合元素类型
  8. Linux sudo 被曝提权漏洞,任意用户均能以 root 身份运行命令
  9. 中国计算机学会推出 CSP 非专业级别认证
  10. 开源软件没你想象中那么安全,Java 开发者尤其要警惕