mvvm
文章平均质量分 92
xiaopangcame
这个作者很懒,什么都没留下…
展开
-
一文搞懂Android JetPack组件原理之Lifecycle、LiveData、ViewModel与源码分析技巧
Lifecycle、LiveData和ViewModel作为AAC架构的核心,常常被用在Android业务架构中。在京东商城Android应用中,为了事件传递等个性化需求,比如ViewModel间通信、ViewModel访问Activity等等,以及为了架构的扩展性,我们封装了BaseLiveData和BaseViewModel等基础组件,也对Activity、Fragement和ViewHolder进行了封装,以JDLifecycleBaseActivity、LifecycleBaseFragment和L原创 2022-11-07 09:46:03 · 853 阅读 · 1 评论 -
MVVM实现与原理分析
1-MVVM简介1.1-MVC & MVP & MVVMMVPMVVM与MVP结构类似,MVP也是通过Presenter将View与Model解耦。不过MVVM是基于观察者模式,viewModel不持有Activity/Fragment实例,数据更新驱动UI更新。MVC视图层用xml或者代码描述,控制层由Activity和Fragment实现。控制层太复杂,显示逻辑和其他逻辑在一起不便维护MVVM低耦合。View模块可独立于Model的变化。复用性。一个ViewModel可以绑定到不同的View上,原创 2022-06-13 23:43:01 · 1011 阅读 · 0 评论 -
Lifecycle 源码详解
Lifecycle 是 Jetpack 整个家族体系内最为基础的内容之一,正是因为有了 Lifecycle 的存在,使得如今开发者搭建依赖于生命周期变化的业务逻辑变得简单高效了许多,使得我们可以用一种统一的方式来监听 Activity、Fragment、Service、甚至是 Process 的生命周期变化,且大大减少了业务代码发生内存泄漏和 NPE 的风险。本文就来对 Lifecycle 进行一次全面的源码解读,希望对你有所帮助 ????????本文所讲的源码基于以下依赖库当前最新的 release原创 2021-11-14 21:32:55 · 609 阅读 · 0 评论 -
ViewModel源码分析
首先,还是先看一个例子:public class MyViewModel extends ViewModel { private MutableLiveData<List<User>> users; public LiveData<List<User>> getUsers() { if (users == null) { users = new MutableLiveData<List<原创 2021-07-23 15:12:44 · 190 阅读 · 0 评论 -
LiveData源码分析
首先还是以一个示例开始:MutableLiveData<String> liveString = new MutableLiveData<>();liveString.observe(mOwner, new Observer<String>() { @Override public void onChanged(@Nullable final String s) { Log.d(TAG, "onChanged() called.原创 2021-07-23 14:45:58 · 148 阅读 · 0 评论 -
DataBinding源码解析
DataBinding是Google发布的支持库,它可以实现UI组件及数据源的双向绑定。使用DataBinding可以轻松实现MVVM模式,当数据发生变化时会体现在View界面上,反过来界面内容变化也会同步更新到ViewModel中的数据源。同时,在Google推出的Android Jetpack组件中,也将DataBinding放在了Architecture类别之中。一、DataBinding生成代码启用DataBinding的方法是在对应Model的build.gradle文件里加入以下代码,同原创 2021-07-22 23:20:12 · 356 阅读 · 0 评论