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