ViewModel

2020-10-15  本文已影响0人  努力生活的西鱼

ViewModel是一个提供和管理UI界面数据,并且可感知生命周期的组件。

特点:
1. 不会因为设置变更而被销毁。
2. 可以共享多个Fragment的数据
3. ViewModel + LiveData = 响应式UI

1. 添加依赖
// ViewModel
 implementation "androidx.lifecycle:lifecycle-viewmodel:2.2.0"
2. 继承ViewModel抽象类
public class MainActivityViewModel extends ViewModel {

    public int count = 0;

}
3. 在Activity的onCreate()方法中获取对应的ViewModel
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mainActivityViewModel = new ViewModelProvider(this).get(MainActivityViewModel.class);
    getLifecycle().addObserver(new WorkUtil(mainActivityViewModel));
}
注意
  1. ViewModel里面不应该有Activity,Fragment或者View的引用。
  2. ViewModel不可以代替onSaveInstanceState方法。
  3. 不要使用new()创建ViewModel实例。

如果你需要Application这个Context,你可以继承已经含有Application引用的AndroidViewModel类。

我们应该尽量把UI界面所需的数据保存在ViewModel里面。

上一篇下一篇

猜你喜欢

热点阅读