ViewModel优点
目录
- 保存数据
- 避免内存泄漏
- 减少界面控制器臃肿
保存数据
ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。
如果系统销毁或重新创建界面控制器,则存储在其中的任何瞬态界面相关数据都会丢失。例如,应用可能会在它的某个 Activity 中包含用户列表。为配置更改重新创建 Activity 后,新 Activity 必须重新提取用户列表。对于简单的数据,activity 可以使用 onSaveInstanceState() 方法从 onCreate() 中的捆绑包恢复其数据,但此方法仅适合可以序列化再反序列化的少量数据,而不适合数量可能较大的数据,如用户列表或位图。
避免内存泄漏
Activity 和 Fragment界面控制器经常需要进行可能需要一些时间才能返回的异步调用。界面控制器需要管理这些调用,并确保系统在其销毁后清理这些调用以避免潜在的内存泄漏
减少界面控制器臃肿
使用ViewModel从界面控制器逻辑中分离出视图数据所有权的操作更容易且更高效。
ViewModel优点相关推荐
- Android架构——ViewModel原理学习总结
本文是楼主学习ViewModel 源码的一些总结,感觉ViewModel的源码是Android 三大架构中 最容易理解的一个了.本文ViewModel基于版本androidx.lifecycle:li ...
- LiveData + ViewModel + Room (Google 官文)+Demo
原文地址:lovestack.github.io/2017/11/13/- demo:github.com/lovestack/V- 本指南适用于那些过去构建应用程序有基础知识,现在想知道构建强大的生 ...
- LiveData ViewModel 使用详解
什么是 LiveData LiveData 是一个可观测的数据持有类,但是不同于通常的被观察者,LiveData 具有生命周期感知能力.通俗点说,LiveData 就是具有 "Live&qu ...
- RxSwift ViewModel定义
RxSwift ViewModel定义 观察者模式 观察者模式目标:定义对象间一对多的依赖关系,当一个对象(被观察者)状态发生改变时,所有依赖于它的对象(观察者)都得到通知并被自动更新. 对于RxSw ...
- ViewModel优雅的弹加载窗和获取Context
前言 目前安卓开发一般都是用的mvvm模式,Jetpack的ViewModel是必不可少的一部分,而vm的生命周期要比Activity和Fragment长的,所以其一般不推荐其直接持有A或F,因为可能 ...
- router优点 vue_Vue 出场率99%的面试题
前言 作为前端开发中现行最火的框架之一,Vue 在面试中出现的频率不断增加.基于此,总结了一些 Vue 方面经常出现的面试题,留给自己查看消化,也分享给有需要的小伙伴 感兴趣的小伙伴也可以点击 这里, ...
- Android的MvVM模式探讨: Databinding 与 ViewModel+LiveData+Repository对比
Mvvm模式: Databinding 与 ViewModel+LiveData+Repository 作者:Yagami3zZ,转自:https://www.jianshu.com/p/e7628d ...
- Mvvm模式: Databinding 与 ViewModel+LiveData+Repository
前言: 本文主要是对常见设计模式的一些分析,以及讲述在Android项目中实现Mvvm模式的两种方式.通过Databinding或者ViewModel+LiveData+Repository如何实现M ...
- MVVM是什么?以及MVVM优点
MVVM 1.MVVM是什么? MVVM是Model-View-ViewModel的简写 它本质上是MVC 的改进版 MVVM(Model-View-ViewModel)框架的由来是MVP(Model ...
最新文章
- 进制转换与ascll码利用
- win10x64下的redis安装与使用
- python下载文件到本地-Python下载网络文本数据到本地内存的四种实现方法示例
- boost::geometry::detail::overlay::traverse用法的测试程序
- sqlserver数据恢复(100%可用)
- 有一次去校内的某个礼堂看电影,在门口有个长得很斯文的陌生人一脸神秘地跟我说:师弟,能不能进去之后,把电影票从厕所的气窗扔出来给我……...
- Django报错NameError: name ‘ListView‘ is not defined
- networkx怎么显示图_如何将标签添加到networkx图形中的节点?
- 逐一解读Gartner评出的11大信息安全技术
- 无人驾驶智能车竞速赛,智能大会无人驾驶比赛
- 自学-Linux-老男孩Linux77期-day3
- linux入门目录汇总
- 美年旅游_自由行_自由行分页PageHelper
- 关于“软件设计师”考试的感悟分享
- 趣商宝微信招生方案 ,线上招生难,十大绝招帮您搞定微信吸粉!
- 罗克韦尔自动化2018年自动化博览会开始接受注册
- 智慧消防应用中多设备联动火灾报警系统
- VIRTIO PCI 设备
- 质子交换膜燃料电池(PEMFC) Simulink模型 包括静态模型和动态模型(两个独立模型 可计算输出电压、输出功率、效率
- 微信代驾小程序-景德镇代驾服务平台小程序源码分享