本文基于SDK29一、ViewModel与LiveData的作用:1、viewModel:数据共享,屏幕旋转不丢失数据,并且在Activity与Fragment之间共享数据。 2、LiveData:感知生命周期并且通知观察者刷新,防止内存泄漏。 一下用流程图的方式说明一下其是怎么工作的:1、ViewModel的构造: 2、LiveData注册监听: 3、数据改变通知刷新:LiveData中: 总结:1、ViewMode之所以能够共享数据,是因为其被放在ViewModelStore中,而ViewModelStore被放在NonConfigurationInstances(Activity中)这
本文基于SDK29一、ViewModel与LiveData的作用:1、viewModel:数据共享,屏幕旋转不丢失数据,并且在Activity与Fragment之间共享数据。 2、LiveData:感知生命周期并且通知观察者刷新,防止内存泄漏。 二、用法 三、原理:1、ViewModel:ViewModelProviders.of(this).get(MyViewModel::class.java)我们通过这个方法来构造ViewModel。@NonNull@MainThreadpublicstaticViewModelProviderof(@NonNullFragmentActivityact
本文基于SDK29一、ViewModel与LiveData的作用:1、viewModel:数据共享,屏幕旋转不丢失数据,并且在Activity与Fragment之间共享数据。 2、LiveData:感知生命周期并且通知观察者刷新,防止内存泄漏。 二、用法 三、原理:1、ViewModel:ViewModelProviders.of(this).get(MyViewModel::class.java)我们通过这个方法来构造ViewModel。@NonNull@MainThreadpublicstaticViewModelProviderof(@NonNullFragmentActivityact
ViewModel的创建ViewModel本身只是ViewModel这个类的子类:classMainViewModel:ViewModel(){}在屏幕旋转UI重建的时候,它是如何拥有保持数据的能力的呢?它又是何时被清理的呢?答案全跟它是如何创建,保存的有关系.本文回顾一下创建ViewModel的几种常见写法.注:本文中的图并不是严格意义的时序图(也不符合规范),只是为了简略表示一下代码中的调用关系.原生手动创建ViewModel当ViewModel没有构造参数当ViewModel没有参数的时候很简单:classMainViewModel:ViewModel(){}classMainActiv
ViewModel的创建ViewModel本身只是ViewModel这个类的子类:classMainViewModel:ViewModel(){}在屏幕旋转UI重建的时候,它是如何拥有保持数据的能力的呢?它又是何时被清理的呢?答案全跟它是如何创建,保存的有关系.本文回顾一下创建ViewModel的几种常见写法.注:本文中的图并不是严格意义的时序图(也不符合规范),只是为了简略表示一下代码中的调用关系.原生手动创建ViewModel当ViewModel没有构造参数当ViewModel没有参数的时候很简单:classMainViewModel:ViewModel(){}classMainActiv
要看本系列其他文章,可访问此链接Jetpack架构学习|Stars-One的杂货小窝原文地址:Jetpack架构组件学习(2)——ViewModel和Livedata使用|Stars-One的杂货小窝Jetpack架构推荐使用MVVM结构,为此推出了几个MVVM的组件库供我们开发者快速接入,首先要讲的就是ViewModel个人理解:Activity为View,VM就是ViewModel,负责数据的逻辑处理,Model则是数据源ViewModel介绍ViewModel能做什么?ViewModel生命周期与Activity独立,可以优雅的保存内存中的数据(在屏幕旋转的横竖屏切换时,数据可以得到保留
要看本系列其他文章,可访问此链接Jetpack架构学习|Stars-One的杂货小窝原文地址:Jetpack架构组件学习(2)——ViewModel和Livedata使用|Stars-One的杂货小窝Jetpack架构推荐使用MVVM结构,为此推出了几个MVVM的组件库供我们开发者快速接入,首先要讲的就是ViewModel个人理解:Activity为View,VM就是ViewModel,负责数据的逻辑处理,Model则是数据源ViewModel介绍ViewModel能做什么?ViewModel生命周期与Activity独立,可以优雅的保存内存中的数据(在屏幕旋转的横竖屏切换时,数据可以得到保留
Jetpack学习之ViewModel、Lifecycles、LiveData声明:本学习笔记基于郭霖大大的《第一行代码第3版》并结合官方文档、网络资源以及个人理解整理而成,欢迎大家讨论指正Jetpack简介主要组成 Jetpack是一个开发工具集,能够协助开发者编写出更简洁的代码,简化开发过程,并且这些组件有一个很好的特点,他们大部分不依赖与任何Android系统版本,这意味着这些组件通常是定义在AndroidX库当中,并且拥有非常好的向下兼容性。 Jetpack全家桶包含内容非常多,主要可分为基础、架构、行为、界面4个部分,本次学习主要聚焦于对架构的学习,其中很多组件更是专门为MVVM
Jetpack学习之ViewModel、Lifecycles、LiveData声明:本学习笔记基于郭霖大大的《第一行代码第3版》并结合官方文档、网络资源以及个人理解整理而成,欢迎大家讨论指正Jetpack简介主要组成 Jetpack是一个开发工具集,能够协助开发者编写出更简洁的代码,简化开发过程,并且这些组件有一个很好的特点,他们大部分不依赖与任何Android系统版本,这意味着这些组件通常是定义在AndroidX库当中,并且拥有非常好的向下兼容性。 Jetpack全家桶包含内容非常多,主要可分为基础、架构、行为、界面4个部分,本次学习主要聚焦于对架构的学习,其中很多组件更是专门为MVVM
前言构建原生Android应用程序需要您具备相当的面向对象编程知识。这构成了本文的基础,因为我们将利用继承的概念来设置基类。除此之外,您还将通过实际示例了解泛型。有人可能会好奇为什么我们要在片段类中添加另一层继承?这个问题通常在尚未意识到继承的好处的初学者程序员中很常见。什么是面向对象编程(OOP)中的继承?继承是一个类继承另一个类的所有特性的特性。继承特征的类称为基类、超类或父类,继承特征的类称为派生类、子类或子类。例如,如果D类扩展了A,则它继承了A的特性。什么是泛型?泛型只是参数化的类型。这个想法是允许类型(整数、字符串等,以及用户定义的类型)作为方法、类和接口的参数。使用泛型,可以创建