Android:ViewModel学习总结

2020-06-17  本文已影响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,传参要注意。

上一篇下一篇

猜你喜欢

热点阅读