有序广播可以按一定的优先级进行传播

首先进行发送广播

  1. public void click(View v){
  2.  
  3. Intent intent = new Intent();
  4. intent.setAction("com.coderwei.orderbroadcast");
  5. sendOrderedBroadcast(intent,null,new FinalReceiver(),null,1,"我是一条有序广播",null);
  6. }

上面new FinalReceiver继承于与BroadcastReceiver,但是不用再清单文件中配置,有特权,可以用于接收最后的结果

  1. public class FirstBroadcast extends BroadcastReceiver {
  2. @Override
  3. public void onReceive(Context context, Intent intent) {
  4. String content = getResultData();
  5. Toast.makeText(context,"First"+content,Toast.LENGTH_SHORT).show();
  6. setResultData("我是一条已经被接收过一次了的有序广播");
  7.  
  8. }
  9. }
  10.  
  11. public class SecondBroadcast extends BroadcastReceiver {
  12. @Override
  13. public void onReceive(Context context, Intent intent) {
  14. String content = getResultData();
  15. //abortBroadcast();//停止广播
  16. Toast.makeText(context,"Second"+content,Toast.LENGTH_SHORT).show();
  17. setResultData("我是一条被接收过两次的广播");
  18. }
  19. }
  20.  
  21. public class ThirdBroadcast extends BroadcastReceiver {
  22. @Override
  23. public void onReceive(Context context, Intent intent) {
  24. String content = getResultData();
  25. Toast.makeText(context,"Third"+content,Toast.LENGTH_SHORT).show();
  26.  
  27. }
  28. }

然后就是配置Manifest.xml

  1. <receiver android:name=".FirstBroadcast">
  2. <intent-filter
  3. android:priority="1000">
  4. <action android:name="com.coderwei.orderbroadcast"/>
  5. </intent-filter>
  6. </receiver>
  7. <receiver android:name=".SecondBroadcast">
  8. <intent-filter
  9. android:priority="800">
  10. <action android:name="com.coderwei.orderbroadcast"/>
  11. </intent-filter>
  12. </receiver>
  13. <receiver android:name=".ThirdBroadcast">
  14. <intent-filter
  15. android:priority="200">
  16. <action android:name="com.coderwei.orderbroadcast"/>
  17. </intent-filter>
  18. </receiver>
  1. android:priority 代表优先级,-1000 1000之间,数值越大,优先级越大。

BroadcastReceiver之有序广播的更多相关文章

  1. Android学习笔记(十二)BroadcastReceiver的有序广播和优先级

    前两篇博文中简单整理了普通广播,其实还有有序广播,有序广播在开发中也是比不可少的,可以给广播接收者设定优先级来控制接受顺序,并却可以中断广播传递等等. 一.两种Broadcast: · 普通广播(No ...

  2. Android(java)学习笔记179:BroadcastReceiver之 有序广播和无序广播(BroadcastReceiver优先级)

    之前我们在Android(java)学习笔记178中自定义的广播是无序广播,下面我们要了解一下有序广播:   1.   我们首先了解一下有序广播和无序广播区别和联系? (1) 有序广播> 接受者 ...

  3. Android(java)学习笔记122:BroadcastReceiver之 有序广播和无序广播(BroadcastReceiver优先级)

    之前我们在Android(java)学习笔记178中自定义的广播是无序广播,下面我们要了解一下有序广播: 1. 我们首先了解一下有序广播和无序广播区别和联系? (1)有序广播> 接受者有优先级, ...

  4. Android BroadcastReceiver 发送有序广播

    普通广播(Normal Broadcast): 一,优缺点:和有序广播的优缺点相反! 二,发送广播的方法:sendBroadcast() 有序广播(Ordered Broadcast): 一,优缺点 ...

  5. Android BroadcastReceiver实例Demo(有序广播的发送)

    上一篇简介了广播的发送,这篇主要介绍下,有序广播的发送. 设置完相关属性的时候,广播就会依照有序的方式进行发送: 发送顺序: 先发送第二条广播: 再发送第一条广播: 最后发送第三条广播. 代码例如以下 ...

  6. 发送有序广播Ordered Broadcast

    import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.vi ...

  7. android86 监听SD卡状态,勒索软件,监听应用的安装、卸载、更新,无序广播有序广播

    * 添加权限 <uses-permission android:name="android.permission.RECEIVE_SMS"/> * 4.0以后广播接收者 ...

  8. android 51 有序广播

    无序广播:一条广播发送出去,多个接收者接收没有顺序.有序广播:广播接收者可以设置优先级,优先级高的先收到广播.有序广播可以设置优先级. mainActivity.java package com.sx ...

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

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

随机推荐

  1. iOS 解决导航栏左右 BarButtonItem偏移位置的问题

    iOS7 之后,我们直接在导航栏添加barbuttonItem时候,会发现有一定偏移量, 比如: self.navigationItem.leftBarButtonItem = UIBarButton ...

  2. ln

    文件描述符是相对进程而言的,一个文件可以有多个文件描述符,但只有一个inode,inode一样就是同一个文件,文件名不同也是同一个 硬链接 两个文件是指向同一个存储区,inode号一样,并没有开辟新的 ...

  3. 用U盘制作启动盘后空间变小的恢复方法,清除U盘启动盘空间

    先把u盘插好,运行cmd, 输入diskpart,回车, (输入list disk,回车,能看到磁盘大致情况,u盘一般是磁盘1) 再输入select disk 1,回车, 再输入clean,回车, 关 ...

  4. 大话设计模式C++版——观察者模式

    观察者模式是一种类似于消息分发的模式,用于一个任务需要被多个对象监听的场景,或者成员对象需要反向通知类对象的情况,是一种很有用的设计模式.    这里以大话设计模式中的例子为例,办公室员工A.B.C在 ...

  5. uva131 The Psychic Poker Player

    The Psychic Poker Player Time Limit: 3000MS     64bit IO Format: %lld & %llu Description In 5-ca ...

  6. sublime text2安装package control的方法

    Package Control 方法一:在线安装,首先打开 Ctrl + ~,输入如下的代码: import urllib2,os; pf='Package Control.sublime-packa ...

  7. Swift关于Any,AnyObject,AnyClass的区别与联系

    在Swift语言中,协议定义类或结构体应该遵守的变量和方法集合,如下所示,这个一个标准的协议的声明: protocol NSObjectProtocol { func isEqual(object: ...

  8. Asp.net NVelocity 模版引擎

    NVelocity.dll是Java中常用的一个模版,下面是常用的模版引擎 1,返回string类型的html代码 /// <summary> /// 获取html模版 /// </ ...

  9. python子网拆分IP段

    # author: 阿辉枫情 import re import struct import socket def IPSplitBlocks(minip, maxip): result = [] Ju ...

  10. 十大经典排序算法总结——JavaScrip版

    首先,对于评述算法优劣术语的说明: 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面:即排序后2个相等键值的顺序和排序之前它们的顺序相同 不稳定:如果a原本在b的前面,而a=b,排序之后a ...