好文推荐:LocalBroadcastManager 的实现原理

瘦蛟舞 | 2015-06-12 10:43

在我文章 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 实现的应用内的通信,自然安全性更好,效率更高。