Andriod --- JetPack (三):ViewModel 的诞生
1.Andriod — JetPack (一):初识 JetPack
2.Andriod — JetPack (二):LifeCycle 的诞生
3.Andriod — JetPack (三):ViewModel 的诞生
4.Andriod — JetPack (四):BaseObservable 与 ObservableField 双向绑定
5.Andriod — JetPack (五):DataBinding + LiveData +ViewModel 简单实例
6.Andriod — JetPack (六):Room 增删改查
7.Andriod — JetPack (七):Room + ViewModel + LiveData 增删改查实例
一、ViewModel的诞生
1.瞬态数据的丢失
比如用户在界面上输入了数据,如果屏幕旋转之后,数据就发生了丢失。
ViewModel实际上是以Map的方式保存我们的数据
2.异步调用的内存泄漏
3.类膨胀提高维护的难度和测试的难度
比如在 Activity 中写的代码太多,导致维护难度增加
二、ViewModel的作用
1.它是介于 View(视图)和 Model(数据模型)直接的桥梁
2.使视图和数据能够分离,也能够保持通信
三、使用ViewModel的注意事项
1.不要向ViewModel中传入Context ,会导致内存泄漏,如果要使用Context的话,就让自定义MyViewModel继承AndroidViewModel,使用里面的Application。
即由:
public class MyViewModel extends ViewModel {}
换成
public class MyViewModel extends AndroidViewModel {public MyViewModel(@NonNull Application application) {super(application);}
}
学习内容来自动脑学院~
Andriod --- JetPack (三):ViewModel 的诞生相关推荐
- Andriod --- JetPack (七):Room + ViewModel + LiveData 增删改查实例
1.Andriod - JetPack (一):初识 JetPack 2.Andriod - JetPack (二):LifeCycle 的诞生 3.Andriod - JetPack (三):Vie ...
- Andriod --- JetPack (五):DataBinding + LiveData +ViewModel 简单实例
1.Andriod - JetPack (一):初识 JetPack 2.Andriod - JetPack (二):LifeCycle 的诞生 3.Andriod - JetPack (三):Vie ...
- Andriod --- JetPack (二):LifeCycle 的诞生
1.Andriod - JetPack (一):初识 JetPack 2.Andriod - JetPack (二):LifeCycle 的诞生 3.Andriod - JetPack (三):Vie ...
- Andriod --- JetPack (六):Room 增删改查
1.Andriod - JetPack (一):初识 JetPack 2.Andriod - JetPack (二):LifeCycle 的诞生 3.Andriod - JetPack (三):Vie ...
- Andriod --- JetPack (四):BaseObservable 与 ObservableField 双向绑定
1.Andriod - JetPack (一):初识 JetPack 2.Andriod - JetPack (二):LifeCycle 的诞生 3.Andriod - JetPack (三):Vie ...
- Andriod --- JetPack (一):初识 JetPack
1. Andriod --- JetPack (一):初识 JetPack 2. Andriod --- JetPack (二):LifeCycle 的诞生 3. Andriod --- JetPac ...
- Android Jetpack组件ViewModel基本使用和原理分析
本文整体流程:首先要知道什么是 ViewModel,然后演示一个例子,来看看 ViewModel 是怎么使用的,接着提出问题为什么是这样的,最后读源码来解释原因! 1.什么是ViewModel 1.1 ...
- Jetpack之ViewModel讲解
[1]关于ViewModel ViewModel是Jetpack AAC的重要组件,同时也有一个同名抽象类. ViewModel,意为 视图模型,即为界面准备数据的模型.简单理解就是,ViewMode ...
- Android Jetpack 之 ViewModel
前言 在 Android 中,ViewModel 的作用就是在 UI 控制器( 如 Activity.Fragment)的生命周期中保存和管理 UI 相关的数据.ViewModel 保存的数据在配置更 ...
最新文章
- HAProxy客户端IP地址的透传
- 深入 Nginx 之架构篇
- windows安装Python模块:requests
- android5.1.1移植教程,iTOP4412开发板Android5.1.1移植教程
- 深度学习笔记(43) Siamese网络
- android 系统(34)--关机充电图标修改
- JQuery Ajax 全解析
- CSDN招人啦!快来看看,有你想要的职位吗?
- 测试脚本常用知识点python
- layui prompt弹窗验证码操作
- 【Go】Go 语言运算符及其优先级
- pocketpc同步驱动_PocketPC上的NewsBreak RSS Feed阅读器和播客
- Globally and Locally Consistent Image Completion 实验记录
- 服务器要删除文件访问被拒绝,删除文件提示:文件夹访问被拒绝 需要来自administrator权限执行操作...
- 如何计算两个日期之间的工作天数
- 高德js-v1.4.13多图层 天地图 谷歌 高德mark点显示
- 安卓直播间websocket协议破解还原
- sql语句进阶教程(学习sql这一篇就够了)
- EAS\BOS 开发 消息中心webservice接口使用说明
- react-native弹性布局
热门文章
- 【C++】not accessible because 'Rectangle' uses 'private' to inherit from 'Shape'
- gdb C++程序coredump不显示行号问题
- boost bind使用指南
- html 表格_【HTML】3 表格标签
- C语言 —— sprintf()函数
- mingw编译ffmpeg 错误:Unknown option --enable-memalign-hack
- 文件系统磁盘管理(一)--文件系统
- Linux 内核将要支持最新龙芯 3A2000/3B2000
- ELK之ElasticSearch快速入门
- 远程桌面连接时显示密码已过期