BasicSample
这是谷歌官方提供的一个关于Android Architecture Component 库使用的例子,通过查看源码,这个例子只简单的展示如何使用Architecture Component库中的相关构件的使用,包括LifeCycle,ViewModel,Room,LiveData等,其中还涉及了DataBinding这个库。看起来挺简单的,并且不涉及网络请求,只是单纯的对数据库进行初始化,然后加载数据库的相关数据。
接下来我们来看下具体的代码。
首先我们回顾下官方提供的架构:
从上图中我们可以看到,首先创建一个页面(Activity/Fragment),然后根据显示的页面创建ViewModel,ViewModel通过LiveData去渲染当前的页面,LiveData通过Repository来初始化数据,如果有本地数据则加载本地数据,如果没有则进行网络请求,通过网络请求获取数据,然后本地化,然后重新加载。这么一个流程下来后,页面就加载完成了。
然后我们在页面的生命周期中加入一些日志:
通过代码我们梳理了具体的流程如下:
如何使用生命感知:
一方面是通过数据的观察,一方面是对生命周期的感知,接下来上代码
虽然代码不多,我们也只看关键部分:
ProductListFragment.java
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Log.d("AAC", "ProductListFragment onActivityCreated");
final