livedata专题

Android --- livedata是粘性事件,什么叫粘性事件

粘性事件‌是指在LiveData中,即使观察者(Observer)在数据发送之后注册,也能接收到之前发送的数据。这种机制允许先发送数据,然后再注册观察者,注册成功后,该观察者仍然可以接收到之前发送的数据,执行对应的观察动作。粘性事件的原理基于观察者模式,通过允许先触发更改被观察对象(即产生观察事件),再去注册观察者对象,从而实现了观察者与被观察者对象之间更加紧密的粘合。 在LiveData中,粘

LiveData+ViewModel用法2:多页面监听同一个状态

1.创建ViewModel public class SingletonViewModel extends ViewModel {private SingletonLiveData content;public SingletonLiveData getContent() {if (content == null) {content = SingletonLiveData.getInstance

LiveData+ViewModel用法1:获取数据

之前一直使用MVP开发。刚上班看一下MVVM。LiveData+ViewModel确实比较给力,但看到databinding感觉xml写法复杂了很多,先记录下LiveData配合ViewModel使用。 LiveData 优点不会再产生由于Activity处于stop状态而引起的崩溃。如果观察者的生命周期是不活跃的,例如 activity 处于后台,那么将不会收到任何 LiveData 事件。

Android从零开始搭建MVVM架构(4)——LiveData

LiveData 介绍 Livedata 是 Google 推荐的 Android 架构组件之一,是一个存放可被观察的数据持有类,有生命周期感知功能,解决了android开发者需要去手动处理生命周期的痛点。 比如当我们使用 Retrofit+Rxjava处理接口回调数据时,需要考虑activity 或 fragment 生命周期,以解决 onStop 或 onDestory之后回调数据的问题。现

Android LiveData详解

官方文档翻译 1.LiveData概述 1.1 使用LiveData的优点1.2 使用LiveData对象 1.2.1 创建LiveData对象1.2.2 观察LiveData对象1.2.3 更新LiveData对象1.2.4 在Room中使用LiveData 1.3 继承LiveData1.4 LiveData变换 1.4.1 创建新的转换 1.5 合并多个LiveData数据源1.6

ViewModel、Lifecycles、LiveData基本使用

以下是使用Java实现ViewModel、Lifecycles和LiveData的基本用法,以及它们的原理简述。 ViewModel的基本使用(Java) 1. 引入依赖 在你的build.gradle文件中添加以下依赖: implementation 'androidx.lifecycle:lifecycle-viewmodel:2.4.0' // 使用时请检查最新版本 2. 创建Vi

初探Jetpack(三) -- LiveData

初探Jetpack(一) – ViewModel 初探Jetpack(二) – Lifecycles LiveData 是 Jetpack 提供的一种响应式变成组件,它可以包含任何类型的数据,并在数据发现变化的时候,通知观察者。 LiveData 具有生命周期的感知能力,指它能感觉 activity,fragment ,service 的生命周期,且只有这些组件处于活跃生命周期状态时,L

LiveData 源码解析(2.4.1 版本)

文章目录 1、LiveData 简介2、LiveData 配置与基本用法2.1 依赖引入与配置2.2 基本用法2.2.1 LiveData 简单使用2.2.2 LiveData 扩展2.2.3 LiveData map() 转换2.2.4 LiveData switchMap() 转换2.2.5 LiveData 合并多个源(MediatorLiveData) 3、源码解析3.1 Live

Compose搭档 — ViewModel、LiveData

文章目录 Compose如虎添翼 -- 搭配ViewModel、LiveData!!!一、需求一览二、架构、流程三、Compose UI开发3.1、搜索框3.2、折线图 四、ViewModel 业务开发五、Compose和ViewModel建立关系六、总结 Compose如虎添翼 – 搭配ViewModel、LiveData!!! Compose系列文章,请点原文阅读。原文:

Android数据缓存框架 - 内存数据载体从LiveData到StateFlow

引言:所有成功者的背后,都有一份艰苦的历程,不要只看到了人前的风光,而低估了他们背后所付出的努力。 随着flow到流行度越来越高,有开发者呼吁我使用flow,于是我就如你们所愿,新增了StateFlow作为新的数据载体。当然你仍然可以使用旧版本的LiveData,代码写法略微不同罢了。如果对我的dcache框架设计不是很理解的小伙伴,可以看我的专栏其他文章。 为什么推荐使用StateFl

LiveData的postValue与setValue多次调用问题

使用环境和特点 setValue()只能在主线程中调用:多次调用每次都会收到 postValue()可以在任何线程中调用:多次调用,只会收到最后一条更新(当然是在上一条没有发送之前,又收到一条消息时,前一条会被覆盖) 方法分析 setValue() 看官方如何介绍这个方法。 /*** Sets the value. If there are active observers, the v

Android Jetpack架构组件——LiveData原理篇

前言 前面我们讲到了LiveData是如何使用的,并在最后留了几个问题。比如它是如何通过生命周期去变化的?为什么DESTORY不会接受数据?postValue和setValue是如何更新数据的?Transformations的map和switchMap方法内部是如何操作的?别急,本篇文章会带你了解其原理。接下来上正文。 LiveData是如何观察生命周期变化的? 如何观察生命周期,我们需要通

Android LiveData Cannot add the same observer with different lifecycles

https://www.yxhuang.com/2022/05/29/livedata-add-some-observer-error/ 这篇文章已经解释的很好了。 其实在去年我写的文章, https://blog.csdn.net/jzlhll123/article/details/126593235 中提到了, 其实不论是java或者kotlin,不引用外部的函数或者变量,都会导致此问题。

Android 架构组件之 LiveData

文章目录 1. LiveData 是什么?为什么要使用 LiveData?1.1 一个示例,看使用 LiveData 的优势 2. 分析 LiveData 的组成及实现原理2.1 通过类图分析 LiveData 的组成2.2 分析 LiveData 是怎样感知组件生命周期的2.3 数据更新时 LiveData 又是怎样通知组件的 3. LiveData 中的转换方法3.1 map3.2 sw

真香!Kotlin+MVVM+LiveData+协程 打造 Wanandroid!

关注 秉心说,公众号后台回复 玩安卓 即可获取 Wanandroid 安装包。 Wanandroid 是鸿洋鸿大大的安卓开源知识网站,包含最新博文,最新项目,常用工具,公众号文章收录等等功能,同时也开源了所有 API 接口,方便大家打造自己的 Wanandroid 客户端。Github 上关于 Wanandroid 的客户端也层出不穷,Java的,Kotlin 的,Flutter 的,Mv

LiveData原理解析和仿写一个LiveDataBus

引入LiveData: implementation "androidx.lifecycle:lifecycle-viewmodel:2.2.0" 学习内容: //这个实际上还是继承了LiveDatapublic class MutableLiveData<T> extends LiveData<T> {@Overridepublic void postValue(T value) {s

LiveData的使用

1.LiveData 一种便于观察,用于储存数据的存储器类。 当数据发生变更时,LiveData会及时通知观察者(Observer类)。 MutableLiveData是LiveData的子类 2.应用 ①定义了一个名为deviceListLiveData的存储器   其中MutableLiveData是被观察者,List是deviceListLiveData规定可储存的类型。 ②

Flow 和 LiveData 之操作符:throttleFirst、 throttleLast 、throttleLatest、debounce

Flow 和 LiveData 之操作符:throttleFirst、 throttleLast 、throttleLatest、debounce 文章目录 Flow 和 LiveData 之操作符:throttleFirst、 throttleLast 、throttleLatest、debounce前言一、Flow 之操作符扩展1. ThrottleFirst2. ThrottleLa

【Android入门】MVVM + LiveData 乱入的butterKnife

1. MVVM 架构 分工 View 层对应 XML 中的静态UI、 Activity 和 Fragment 中设置显示内容的部分,不处理业务逻辑,不操作或处理数据ViewModel 层只处理业务逻辑和操作处理业务数据,不处理UI相关,简单的事件封装成 Command 处理(?),完成 View 与 Model 间的交互Model 层执行数据获取、储存、 监听状态变化等,是数据的实体模型

MVVM系列之二:LiveData

上一篇介绍了Jetpack AAC 的基础组件 Lifecycle,它是用于管理Activity/Fragment的生命周期。这篇来介绍基于Lifecycle的用于处理数据的组件——LiveData。 1、LiveData介绍 1.1 作用 LiveData是Jetpack AAC的重要组件,同时也有一个同名抽象类。 LiveData,原意是 活着的数据。 数据还能有生命? 先来看下官方的

Kotlin: Jetpack — LiveData简单应用

LiveData 概览   Android Jetpack 的一部分。 LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 activity、fragment 或 service)的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。 API:LiveData 概览

LiveData常用方法源码分析

1、postValue protected void postValue(T value) {boolean postTask;// 同步锁synchronized (mDataLock) {// 判断mPendingData是否为NOT_SETpostTask = mPendingData == NOT_SET;// 对mPendingData赋值mPendingData = value;}/

LiveData从入门到实战

一、简介 1、什么是LiveData LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 Activity、Fragment 或 Service)的生命周期。 2、LiveData 优势 确保界面符合数据状态LiveData 遵循观察者模式。 当底层数据发生变化时,LiveData 会通知 Obs

Android-面试-Jetpack-LiveData-你必须滴知道得知道的那些玩意儿(1)

作者:RicardoMJiang 前言 阅读本文前,大家可以先思考一些这几个问题: 1.LiveData为什么可以自动取消订阅,如何避免内存泄漏? 2.LiveData设置相同的值,会不会回调? 3.LiveData有什么坑?如何实现LiveDataBus? 带着问题学习可以让我们在学习的过程中更加有目的性与条理。 例如在读源码的过程中,我们如果从头开始读,往往千头万绪,抓不住要领。 而

android源码(1)LiveData源码

2、LiveData如何感知生命周期? 总结:首先看数据:LiveData中的 mObservers 和 LifecycleRegistry 中的 mObserverMap。 LiveData中:// key: observer; value: new LifecycleBoundObserver(owner, observer)SafeIterableMap<Observer<T>,

Android : ViewModel+LiveData observe观察数据 改变内容简单应用

observe观察数据  改变内容 1.导包 // 使用androidx版本库implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0-alpha03'// 或者,使用support版本库implementation 'android.arch.lifecycle:extensions:1.1.1' 2.继承ViewMod