Android基础广播

广播如何调用,有什么方式,区别是什么?

Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器)。广播作为Android组件间的通信方式.

使用场景:

1.同一app内部的同一组件内的消息通信(单个或多个线程之间);

2.同一app内部的不同组件之间的消息通信(单个进程);

3.同一app具有多个进程的不同组件之间的消息通信;(正是因为如此,所以和U3d那边可以使用广播的形式完成了通信)

4.不同app之间的组件之间消息通信;

5.Android系统在特定情况下与App之间的消息通信。

广播的注册:

1.静态注册:定义一个广播接收器继承BroadcastReceiver,重写其onReceive方法,在清单文件注册广播(常驻型广播,即便是应用程序关闭,如有广播,广播接收器一样是可以接收到)

2.动态注册和取消注册;(非常驻型广播,应用程序关闭,广播也就没有了)

定义一个广播接收器继承BroadcastReceiver,在代码中通过registerReceiver()注册.当程序关闭或者界面销毁的时候i调用unregisterReceiver()进行销毁。

发送的广播可以分为有序广播和无序广播;

无序广播:发送方发出后,几乎同时到达多个广播接收者处,某个接收者不能接收到广播后进行一番处理后传给下一个接收者,并且无法终止广播继续传播;Context.sendBroadcast(intent);

有序广播:广播接收者需要提前设置优先级,优先级高的先接收到广播,优先级数值为-1000~1000,在AndroidManifest.xml的设置;比如存在3个广播接收者A、B、C,优先级A>B>C,因此A最先收到广播,当A收到广播后,可以向广播中添加一些数据给下一个接收者(intent.putExtra()),或者终止广播(abortBroadcast());Context.sendOrderedBroadcast(intent);

简单理解的话可以认为:有序广播,优先级高的将先接收到广播,并且可以修改和终止广播;无序广播,所有的都可以接收到.

    原文作者:正阳Android
    原文地址: https://www.jianshu.com/p/65d075ef61db
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞