广播

需要复习知识点:系统广播、LocalBroadcastManager 、Binder机制
文章来源:
https://www.jianshu.com/p/df7af437e766
https://blog.csdn.net/u010687392/article/details/49744579

利用广播去更新UI好吗?

这个需要分情况讨论,如果更新不是很频繁的话就可以,如果跟新频繁的话,广播这种方式就不是太好了,广播的发送和接收是有一定的代价的,它的传输是通过Binder进程间通信机制来实现的,除此之外,还可能有其他的因素让广播发送和到达是不准时的,我们要先了解Android的ActivityManagerService有一个专门的消息队列来接收发送出来的广播,sendBroadcast执行完后就立即返回,但这时发送来的广播只是被放入到队列,并不一定马上被处理。当处理到当前广播时,又会把这个广播分发给注册的广播接收分发器ReceiverDispatcher,ReceiverDispatcher最后又把广播交给接Receiver所在的线程的消息队列去处理(就是你熟悉的UI线程的Message Queue)。

Binder

Binder框架定义了四个角色:Server,Client,ServiceManager(以后简称SMgr)以及Binder驱动。其中Server,Client,SMgr运行于用户空间,驱动运行于内核空间。这四个角色的关系和互联网类似:Server是服务器,Client是客户终端,SMgr是域名服务器(DNS),驱动是路由器。

你可能感兴趣的:(广播)