好文推荐:LocalBroadcastManager 的实现原理
在我文章 http://drops.wooyun.org/tips/4393 中提到
LocalBroadcastManager.sendBroadcast() 发出的广播只能被app自身广播接收器接收。
Intent intent = new Intent("my-sensitive-event");
intent.putExtra("event", "this is a test event");
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
在某些场景下能提供广播的安全性,但是具体原理并没有进行分析.下面这篇文章就对此进行了分析 (适合有 android 开发基础的同学)
文章地址:http://www.trinea.cn/android/localbroadcastmanager-impl/
(1) LocalBroadcastManager 的核心实现实际还是 Handler,只是利用到了 IntentFilter 的 match 功能,至于 BroadcastReceiver 换成其他接口也无所谓,顺便利用了现成的类和概念而已。
(2) 因为是 Handler 实现的应用内的通信,自然安全性更好,效率更高。