美文网首页
Android:ViewModel学习总结

Android:ViewModel学习总结

作者: 愚_猪 | 来源:发表于2020-06-17 10:15 被阅读0次

作用:

数据容器

特点:

1.单一职责,将数据从业务中抽离出来。

2.生命周期长,存在于所属对象(Activity,Fragment)的全部生命周期

3.扩展性好,方便与其他功能组合,例如livedata,room

使用场景:

1.横竖屏切换,Activity重建,数据可依然保存

2.同一个Activity下,Fragment之间的数据共享。

原理:

使用者通过工具类(ViewModelProvider)在拥有者(ViewModelStoreOwner,例如:Fragment,FragmentActivity)中获取数据中心(ViewModelStore,简单说就是一个Map)中的某个数据(ViewModel)。如果数据中心没有,会通过工厂(Factory)创建,最常用的工厂是AndroidViewModelFactory,它创建的数据包含Application。

注意:

1.不要把context传入Viewmodel,容易造成内存泄漏

2.同一个Activity下的fragment通过ViewModel进行数据共享时,ViewModel的拥有者是Activity,传参要注意。

相关文章

网友评论

      本文标题:Android:ViewModel学习总结

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