
jetpack系列
文章平均质量分 88
蒋八九
read the fucking source code
展开
-
jetpack系列文章:ViewModel源码+最终组合使用
前言 ViewModel一般都是和livedata一起使用,主要目的其实就是为了解耦,livedata中通过lifecycle根据生命周期做一些事情,ViewModel控制着数据,结合databinding,相互配合使用,ViewModel控制着数据,通过反射创建并在store中统一进行管理 这里需要说一下,ViewModel在2.1.0之后废弃了ViewModelProviders这个类,统一使用ViewModelProvider,其实吧,说白了就是把ViewModelProviders中的of方法拆开了原创 2020-09-09 23:56:06 · 787 阅读 · 0 评论 -
jetpack系列文章:livedata源码分析
前言 官方给我们提供了两个livadata实现类,一个是MutableLiveData,另一个是MediatorLiveData,两者相比起来都比较简单:MutableLiveData里面只有两个方法,一个是setValue当前线程,另一个是postValue主线程。MediatorLiveData里面主要是实现observeForever方法。 我们通过MutableLiveData举例,看一段实例代码: MutableLiveData<String> mElapsedTime = new M原创 2020-09-09 23:15:37 · 242 阅读 · 0 评论 -
jetpack系列文章:Lifecycle源码讲解
前言: Lifecycle源码解析相对比较简单,主要是用来监听生命周期的。使用起来很简单,我们现在的项目一般都是support26以上,新项目一般也都使用AndroidX了,所以不用在乎兼容问题。 Lifecycle是一个观察者模式,所以,从注册观察者开始。一般在onCreate中添加这么一句话就注册完了。 getLifecycle().addObserver(new TestObserver()); 前提是你的Activity继承了(AppCompatActivity extends FragmentA原创 2020-09-06 23:46:39 · 208 阅读 · 0 评论 -
jetpack系列文章:Databinding源码分析(二):动态数据更新
Databinding源码分析这里分两部分讲 单双向数据绑定 [数据监听]原创 2020-08-30 23:43:32 · 290 阅读 · 0 评论 -
jetpack系列文章:Databinding源码分析(一):单双向数据绑定
前言: 由于公司新项目使用MVVM模式,基于databinding的,因此专门分析了一下源码,有助于开发。之前项目用到的是MVP框架,其实MVP也能实现V和M的解耦,只是MVVM在解耦的基础上实现了V和M的双向绑定,达到自动更新同步数据,使开发更加便。 话不多说,开始分析,使用网上很多了,这里不说了: APT技术: databinding我们用起来很简单,越简单表示框架帮我们完成了越多的东西,毫无疑问自动生成的代码是通过apt技术完成的,这个我已经在Arouter源码分析中讲过了,这里附上链接,不再赘述:A原创 2020-08-30 23:39:54 · 640 阅读 · 0 评论