ViewModel

作者: 努力生活的西鱼 | 来源:发表于2020-10-15 23:14 被阅读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里面。

相关文章

网友评论

      本文标题:ViewModel

      本文链接:https://www.haomeiwen.com/subject/oxsapktx.html