3月 182016
 

  LocalBroadcastManager是support v4包里提供的一个组件,它只负责进程内发送广播和接收消息,它的优点如下:

  • 广播消息只在进程内发送,不会造成数据泄露
  • 只接收进程内的广播消息,不会有广播方面的安全问题
  • 比全局的广播效率更高

  LocalBroadcastManager的实现原理:我们通常都是通过LocalBroadcastManager.getInstance(Context context)来获得它的实例的,通过查看LocalBroadcastManager的代码,笔者发现它的实现并不复杂,它其实是一个单实例对象,那么我们在整个进程内使用的其实是一个LocalBroadcastManager对象,这个单实例对象负责注册消息和分发消息。

  了解了一下它的原理,下面我们就用一个小demo来使用一下它吧:

  注意事项:

  • Android桌面组件和app不在一个进程内,不能使用LocalBroadcastManager进行广播
  • LocalBroadcastManager注册的消息只有使用LocalBroadcastManager发送才能接收到,同样LocalBroadcastManager发出的消息只有它注册的消息才能接收
  • LocalBroadcastManager和全局广播可以同时使用,以便于和其它的app进行通讯
打赏