美文网首页
BroadcastReceiver

BroadcastReceiver

作者: JianLee | 来源:发表于2018-04-09 00:30 被阅读6次

概念:一种广泛运用在应用程序之间传输信息的机制,Android中我们要发送的内容是一个Intent,这个Intent中携带传送的数据。
一:基础
1:不同应用程序之间的数据共享。

2:同一个APP多个进程的不同组件之间的消息通信。

3:广播种类
1):普通广播
2):系统广播
3):本地广播

二:实现广播
1:静态注册:在配置文件配置,注册完成就一直运行,(进程杀死,也能收到广播)
2 : 动态注册:跟随Acitivity生命周期,需要销毁。

三:广播的内部实现机制
1:自定义广播,复写OnRecvice()方法。
2:通过Binder机制向AMS(Activity Manager Service)进行注册。
3:广播发送者通过Binder机制向AMS发送广播。
4:AMS查找复合相应条件的(IntentFiter/Permission等)的BroadcastReceiver,讲广播发送到广播相对应的消息循环队列中(一般情况是Activity)。
5:消息循环执行拿到此广播,回调BroadcastReceiver中的OnReceive()方法。

四:本地广播实现机制(LocalBroadCastManager)
1:它高效的原因主要是它内部是通过Hander实现的,它的sendBroadcast()方法含义和我们平时所用的不一样,其实是通过Handler发送一个Message实现的。

2:因为使用Handler实现,所以更高效(其它是Binder),同时别的应用无法向我们的程序发送该广播,而我们应用内发送的广播也不会离开我们的应用。

3:其内部协作主要靠着两个map集合:mReceivers和mActions,当然还有一个LIST集合mPendingBroadcasts,这个主要就是存储待接收的广播对象。

相关文章

网友评论

      本文标题:BroadcastReceiver

      本文链接:https://www.haomeiwen.com/subject/qtevhftx.html