Jetpack
文章平均质量分 96
忙忙碌碌一头羊
这个作者很懒,什么都没留下…
展开
-
ViewModel使用以及源码分析(二)-SavedState
前言在ViewModel使用以及源码分析(一)中,我们留了一个小尾巴SavedStateHandle没有讲解,这部分设计的内容比较多,本篇开始讲解。主要就是涉及到保存的一些知识。1. 概念1.1 SavedState 概念SavedState 是为了弥补 ViewModel 无法直接感知 onSaveInstanceState 被触发的时机的缺陷而产生的。在页面即将被销毁的时候,每个使用 SavedState 的 ViewModel 都会创建一个 Bundle 来存储自己的这份数据,最后这些原创 2021-07-09 15:13:37 · 683 阅读 · 0 评论 -
ViewModel使用以及源码分析(一)
前言在MVVM的模式中,ViewModel的作用在于维护数据与发送消息。架构组件ViewModel实际上提供的功能是:控制ViewModel的生命周期,使之与Activity与Fragment的生命周期绑定。虽然与Activity的生命周期绑定,但可以做到不随着屏幕的旋转而销毁。提供便利的获取ViewModel的方法,使得ViewModel可以更便利的在不同的View类中被访问。使用场景一个Activity中有两个View,这两个View需要共享同一个ViewModel,此时 用这个架构组件原创 2021-07-08 17:15:44 · 341 阅读 · 0 评论 -
Lifecycle之SafeIterableMap
前言在 Lifecycle 使用与源码分析文章中,我们分析LifecycleRegistry类时,说到新增的Observer都会被添加到mObserverMap里面。而这个mObserverMap就是FastSafeIterableMap,FastSafeIterableMap继承了SafeIterableMap。本篇我们就会讲解一下SafeIterableMap类。1. FastSafeIterableMap首先先说一下FastSafeIterableMap类。FastSafeIterableMa原创 2021-07-06 20:11:31 · 542 阅读 · 0 评论 -
Lifecycle 使用与源码分析
一、Lifecycle 介绍Lifecycle是一个生命周期感知组件,一般用来响应Activity、Fragment等组件的生命周期变化,并将变化通知到已注册的观察者。有助于更好地组织代码,让代码逻辑符合生命周期规范,减少内存泄漏,增强稳定性。这些组件可帮助您生成更易于组织且通常更轻量级的代码,这些代码更易于维护。二、使用方法先来看一下如何使用,这样再去分析源码就能有的放矢1.添加依赖:在app或者module目录下的build.gradle中,添加依赖:这里介绍Androidx 项目引入li原创 2021-07-05 15:25:03 · 508 阅读 · 0 评论