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