![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Jetpack
文章平均质量分 59
zhouzhihao_07
在郑州发展android,需要合作的联系吧。(有创意创业的,投资的都可以合作)
展开
-
LiveDataBus 其中的一个库LiveEventBus库的源码解析
那我们接着说,那整个的精华就是这个bus 的map了,key是string的 ,value是LiveEvent 的,看下图一个LiveEvent是有一个livedata来负责观察的,也就是多个消息的时候就是多个livedata,然后是bus这个map在管理。注意,我们发送消息和接收消息都是调用了get方法,也就是下面的with方法,看看,这里可是get set方法集成到一起的,就很怪,作者这里弄的,讲道理,不符合单一职责。原创 2023-08-16 17:40:34 · 197 阅读 · 0 评论 -
Jetpack之MutableLiveData和LiveData源码分析
接着我们着重看一下liveData的源码,先看setValue方法吧,assertMainThread是判断当前是不是主线程,如果不是就抛出异常:这就是为什么postvalue可以在任何线程调用,setPost只能在主线程调用的原因,也是这两个方法的区别。上图我们知道这两个方法都是调用了livedata的各自对应的方法,我们点进去看看livedata的这两个方法是protect 的。允许子类和自己调用,而MutableLiveData重写的时候用的是public,开放出去了。下图是它的item哦。原创 2023-08-15 16:21:29 · 249 阅读 · 0 评论