Jetpack裏面分了幾個系列,分別是ViewModel、Databinding、LifeCycle、LiveData。
其實這些概念我們之前都接觸過,比如Databinding就很類似於ButterKnife。
首先是ViewModel
ViewModel專門用於提供一些數據。當發生配置變更,比如說頁面的屏幕旋轉的時候,這時候一般的數據就會銷燬並且重新創建,如果這些數據是一長串的列表數據,就需要請求網絡或者重新加載,過程會比較慢。
而關鍵用法也很簡單
ViewModelProviders.of(<Your UI controller>).get(<Your ViewModel>.class)
通過這句話就可以得到自己定義的ViewModel,ViewModel裏面可以定義一些數據,但不能持有context上下文。of函數裏面傳入該ViewModel所共享的範圍,如果在這個範圍內,改ViewModel對象就不會因爲界面的切換、或者說屏幕的切換而發生數據的銷燬。