LocalBroadcastManager源码
2015-08-06 20:12
399 查看
代码
官方使用的DCL单例并没有使用volatile,看样子关系不大
使用的是Handler+MainLooper,所有调用都是在UIThread
注册是synchronized,线程安全
对ArrayList进行删除时,从后向前比较,效率会高一点点
为了避免对同一个Intent的多次广播,在匹配一次后,会给filter置位,后续不进行匹配,全部结束后进行重置(line:200)。貌似比不置位用ArrayList.contains效率要高。实际上比HashSet的空间复杂度也要低。HashMap源码
话说,这段代码写的是真垃圾,真的。。。
不过可以使用LocalBroadcastManager做一个非常通用的Observer型的Data Binding方法模式,还是很有用的。
官方使用的DCL单例并没有使用volatile,看样子关系不大
使用的是Handler+MainLooper,所有调用都是在UIThread
注册是synchronized,线程安全
对ArrayList进行删除时,从后向前比较,效率会高一点点
为了避免对同一个Intent的多次广播,在匹配一次后,会给filter置位,后续不进行匹配,全部结束后进行重置(line:200)。貌似比不置位用ArrayList.contains效率要高。实际上比HashSet的空间复杂度也要低。HashMap源码
话说,这段代码写的是真垃圾,真的。。。
不过可以使用LocalBroadcastManager做一个非常通用的Observer型的Data Binding方法模式,还是很有用的。
相关文章推荐
- POJ 2299 Ultra-QuickSort
- sql多表更新
- hdu1024 N! (数组模拟乘法过程)
- Http网络传递参数中文乱码问题
- day17
- ios给图片加水印
- HDOJ1789Doing Homework again(贪心)
- 记录:点击popwindow外部不消失bug解决
- 29.导航控制器和页面间的传值
- 2015 Multi-University Training Contest 6 hdu 5360 Hiking
- Codeforces Round #178 (Div. 2) B .Shaass and Bookshelf
- 文件系统总结2
- 开源项目 -- 悬浮窗口
- oracle9i statspack 报告 分析 direct path read 等待事件
- 2015 多校联赛 ——HDU5363(快速幂)
- using System..................
- 2015 多校联赛 ——HDU5363(快速幂)
- hdu1035 Robot Motion (DFS)
- 使用Fragment +searchview过程中遇到的问题
- Android错误总结大全!