Android -- 发送Broadcast、有序无序

简介:

普通广播                                                                                    

  • 优缺点:和有序广播的优缺点相反!
  • 发送广播的方法:sendBroadcast()

有序广播                                                                                  

  • 优缺点

优点:1,按优先级的不同,优先Receiver可对数据进行处理,并传给下一个Receiver

2,通过abortBroadcast可终止广播的传播  

缺点:效率低  

  • 发送广播的方法:sendOrderedBroadcast()
  • 优先接收到Broadcast的Receiver可通过setResultExtras(Bundle)方法将处理结果存入Broadcast中,下一个Receiver 通过 Bundle bundle=getResultExtras(true)方法获取上一个 Receiver传来的数据。

工程                                                                                          

imageMainActivity.java是程序住进口。

MyBroadcastReceiver.java等都是广播接收者,只是等级不一样。

FinalRecevier.java是有序广播的时候,即使广播被拦截了,这个还是可以接收到广播的。

 

 

 

 

 

复制代码
<receiver android:name=".MyBroadcastReceiver">
            <intent-filter android:priority="1000">
                <action android:name="com.yydcdut.nima"/>
            </intent-filter>
        </receiver>
        <receiver android:name=".MyBroadcastReceiver2">
            <intent-filter android:priority="100">
                <action android:name="com.yydcdut.nima"/>
            </intent-filter>
        </receiver>
        <receiver android:name=".MyBroadcastReceiver3">
            <intent-filter android:priority="10">
                <action android:name="com.yydcdut.nima"/>
            </intent-filter>
        </receiver>
        <receiver android:name=".FinalRecevier">
            <intent-filter>
                <action android:name="com.yydcdut.nima"/>
            </intent-filter>
        </receiver>
复制代码

在MyBroadcastReceiver.java中,代码都差不多:

复制代码
public class MyBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        System.out.println("MyBroadcastReceiver1111111接受到的广播");
        Toast.makeText(context, "MyBroadcastReceiver", Toast.LENGTH_SHORT).show();
        
    }

}
复制代码

在MainActivity.java中:

复制代码
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void click(View view)
    {
        Intent intent = new Intent();
        intent.setAction("com.yydcdut.nima");
        //无序广播
        sendBroadcast(intent);
        //有序广播
        //sendOrderedBroadcast(intent, null);
        
        //sendOrderedBroadcast(intent, null, new FinalRecevier(), null, 0, null, null);
    }
}
复制代码

在某个广播接收的类中加入

abortBroadcast();

这是去拦截广播,但是FinalRecevier还是接收到了的,无论怎么拦截广播。

我是天王盖地虎的分割线                                                                

源代码:http://pan.baidu.com/s/1dD1Qx01

广播发送.zip

 

 

 




本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/3803666.html,如需转载请自行联系原作者

相关文章
|
8月前
|
安全 Java Shell
Android发送广播时报错:Sending non-protected broadcast xxxxxxx from system xxxxxxxxxx
Android发送广播时报错:Sending non-protected broadcast xxxxxxx from system xxxxxxxxxx
1118 0
|
7月前
|
设计模式 Android开发
44. 【Android教程】广播接收器:Broadcast Receiver
44. 【Android教程】广播接收器:Broadcast Receiver
179 2
|
8月前
|
存储 Android开发
Android插件化-Broadcast篇,2024年最新安卓面试自我介绍
Android插件化-Broadcast篇,2024年最新安卓面试自我介绍
|
8月前
|
XML Java Android开发
Android Studio App开发之监听系统广播Broadcast的讲解及实战(包括接收分钟到达广播、网络变更广播、定时管理器等 附源码)
Android Studio App开发之监听系统广播Broadcast的讲解及实战(包括接收分钟到达广播、网络变更广播、定时管理器等 附源码)
505 0
|
8月前
|
XML 安全 Java
Android Studio App开发之广播组件Broadcast的讲解及实战(包括收发标准、有序、静态广播实现手机震动功能 附源码)
Android Studio App开发之广播组件Broadcast的讲解及实战(包括收发标准、有序、静态广播实现手机震动功能 附源码)
696 0
|
Android开发
Android WebView选择图片、发送图片
Android WebView选择图片、发送图片
657 0
|
Android开发
Android:四大组件之 Broadcast(广播)
Broadcast 是一种广泛运用的、在应用程序之间传输信息的机制,Android 中的广播与传统意义上的电台广播类似,一个广播可以有任意个接收者,当然也可能不被任何应用程序所接收。广播机制是一个典型的发布-订阅模式,也就是观察者模式。
156 0
Android:四大组件之 Broadcast(广播)
|
开发工具 Android开发
Android App开发超实用实例 | ​Broadcast
介绍Broadcast的静态注册、动态注册及有序广播。 Broadcast(广播)分为发送者和接收者,可实现跨应用的消息传递。重启手机、闹钟、来电、接收短信等都会发出广播,通过BroadcastReceiver就可以接收广播并进行相应处理。
198 0
Android App开发超实用实例 | ​Broadcast
|
Android开发
Android Socket通讯 分离服务端和客户端、发送表情消息
Android Socket通讯 分离服务端和客户端、发送表情消息
142 0
Android Socket通讯 分离服务端和客户端、发送表情消息
|
Android开发
Android发送验证码倒计时,时间倒计时
Android发送验证码倒计时,时间倒计时
149 0
Android发送验证码倒计时,时间倒计时

热门文章

最新文章