美文网首页
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