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 的诞生相关推荐

  1. Andriod --- JetPack (七):Room + ViewModel + LiveData 增删改查实例

    1.Andriod - JetPack (一):初识 JetPack 2.Andriod - JetPack (二):LifeCycle 的诞生 3.Andriod - JetPack (三):Vie ...

  2. Andriod --- JetPack (五):DataBinding + LiveData +ViewModel 简单实例

    1.Andriod - JetPack (一):初识 JetPack 2.Andriod - JetPack (二):LifeCycle 的诞生 3.Andriod - JetPack (三):Vie ...

  3. Andriod --- JetPack (二):LifeCycle 的诞生

    1.Andriod - JetPack (一):初识 JetPack 2.Andriod - JetPack (二):LifeCycle 的诞生 3.Andriod - JetPack (三):Vie ...

  4. Andriod --- JetPack (六):Room 增删改查

    1.Andriod - JetPack (一):初识 JetPack 2.Andriod - JetPack (二):LifeCycle 的诞生 3.Andriod - JetPack (三):Vie ...

  5. Andriod --- JetPack (四):BaseObservable 与 ObservableField 双向绑定

    1.Andriod - JetPack (一):初识 JetPack 2.Andriod - JetPack (二):LifeCycle 的诞生 3.Andriod - JetPack (三):Vie ...

  6. Andriod --- JetPack (一):初识 JetPack

    1. Andriod --- JetPack (一):初识 JetPack 2. Andriod --- JetPack (二):LifeCycle 的诞生 3. Andriod --- JetPac ...

  7. Android Jetpack组件ViewModel基本使用和原理分析

    本文整体流程:首先要知道什么是 ViewModel,然后演示一个例子,来看看 ViewModel 是怎么使用的,接着提出问题为什么是这样的,最后读源码来解释原因! 1.什么是ViewModel 1.1 ...

  8. Jetpack之ViewModel讲解

    [1]关于ViewModel ViewModel是Jetpack AAC的重要组件,同时也有一个同名抽象类. ViewModel,意为 视图模型,即为界面准备数据的模型.简单理解就是,ViewMode ...

  9. Android Jetpack 之 ViewModel

    前言 在 Android 中,ViewModel 的作用就是在 UI 控制器( 如 Activity.Fragment)的生命周期中保存和管理 UI 相关的数据.ViewModel 保存的数据在配置更 ...

最新文章

  1. HAProxy客户端IP地址的透传
  2. 深入 Nginx 之架构篇
  3. windows安装Python模块:requests
  4. android5.1.1移植教程,iTOP4412开发板Android5.1.1移植教程
  5. 深度学习笔记(43) Siamese网络
  6. android 系统(34)--关机充电图标修改
  7. JQuery Ajax 全解析
  8. CSDN招人啦!快来看看,有你想要的职位吗?
  9. 测试脚本常用知识点python
  10. layui prompt弹窗验证码操作
  11. 【Go】Go 语言运算符及其优先级
  12. pocketpc同步驱动_PocketPC上的NewsBreak RSS Feed阅读器和播客
  13. Globally and Locally Consistent Image Completion 实验记录
  14. 服务器要删除文件访问被拒绝,删除文件提示:文件夹访问被拒绝 需要来自administrator权限执行操作...
  15. 如何计算两个日期之间的工作天数
  16. 高德js-v1.4.13多图层 天地图 谷歌 高德mark点显示
  17. 安卓直播间websocket协议破解还原
  18. sql语句进阶教程(学习sql这一篇就够了)
  19. EAS\BOS 开发 消息中心webservice接口使用说明
  20. react-native弹性布局

热门文章

  1. 【C++】not accessible because 'Rectangle' uses 'private' to inherit from 'Shape'
  2. gdb C++程序coredump不显示行号问题
  3. boost bind使用指南
  4. html 表格_【HTML】3 表格标签
  5. C语言 —— sprintf()函数
  6. mingw编译ffmpeg 错误:Unknown option --enable-memalign-hack
  7. 文件系统磁盘管理(一)--文件系统
  8. Linux 内核将要支持最新龙芯 3A2000/3B2000
  9. ELK之ElasticSearch快速入门
  10. 远程桌面连接时显示密码已过期