首页
学习
活动
专区
工具
TVP
发布

【Jetpack】LiveData 架构组件 ( LiveData 简介 | LiveData 使用方法 | ViewModel + LiveData 示例 )

这里引入 LiveData 架构组件 , 在 ViewModel 中 , 可以 通过 LiveData 将数据修改的信息发送给 视图 View , 通知 UI 界面进行修改 ; 场景举例 : 在 ViewModel...视图 View ; 二、LiveData 使用方法 ---- 首先 , 在 ViewModel 视图模型 中定义 LiveData 数据 , 如 MutableLiveData , class MyViewModel...后 , 将数据定义在 LiveData 中 , 然后在 Activity 中 为 LiveData 添加 Observer 监听器 , 当 LiveData 数据发生改变时 , 会自动回调该监听器的...onChange 方法 ; 1、ViewModel + LiveData 代码 自定义 ViewModel 子类继承 ViewModel , 在 ViewModel 中 , 定义 LiveData 类型的数据...显示到 UI 界面中 , 并为该 LiveData 设置 Observer 监听器 , 监听 LiveData 的数据变化 ; 启动 Timer 定时器 , 修改 ViewModel 中的 LiveData

1.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

Android Jetpack - LiveData

LiveData 概述 LiveData 是一个可观察数据包装类,与普通观察者不同,LiveData 具备生命周期感知能力,这意味着它遵循其它应用组件的生命周期(Activity、Fragment、Service...LiveData 对象连接到系统服务一次,然后任何需要该资源的观察者都可以只观看 LiveData 对象 使用 LiveData 使用 LiveData 的常规步骤如下,我们按照下面这些步骤写一个简单的例子...与 Room 一起使用 LiveData Room 持久化库支持可观察查询并返回 LiveData 对象,这些查询一般在 DAO 中编写 在更新数据库时,Room 会生成更新 LiveData 对象所需的所有代码...具体可以参考 Android Jetpack - Room 一文所提供的代码示例 转换 LiveData 您可能希望在将 LiveData 对象分派给观察者之前更改存储在 LiveData 对象中的值,...或者您可能需要根据另一个 LiveData对象的值返回不同的 LiveData 实例。

1.9K30

Android livedata 源码解剖

Android lifecycle 使用详解 Android LiveData 使用详解 Android lifecyle 源码解剖 Android livedata 源码解剖 github sample...---- 前言 在前面三篇博客中,我们已经介绍了 lifecycle 的使用及原理,livedata ,ViewModel 的常用用法,今天,让我们一起来学习 livedata 的原理。...我们先来回顾一下 LiveData 的特点: LiveData 是一个可以被观察的数据持有类,它可以感知 Activity、Fragment或Service 等组件的生命周期。...所以会回调 obsever 的 onChange 方法,这也就是 LiveData 设计得比较巧妙的一个地方 同理,当 activity 处于后台的时候,您多次调用 livedata 的 setValue...方法,最终只会回调 livedata observer 的 onChange 方法一次。

92420

Android | LiveData 源码分析

前言 LiveData 是一种持有可被观察的数据存储类,和其他可被观察的类不同的是,LiveData 是就要生命周期感知能力的,这意味着他可以在 Activity ,fragment 或者 service...在日常开发过程中,LiveData 已经是必不可少的一环了,例如 MVVM 以及 MVI 开发模式中,都用到了 LiveData。...了解 LiveData 如果观察者(Activity/Fragment) 的生命周期处于 STARTED 或者 RESUMED 状态,LiveData 就会认为是活跃状态。...,它会在变为活跃状态时接收最新数据 配置更改后也会接收到最新的可用数据 共享资源,可以使用单例模式扩展 LiveData 对象,以便在应用中共享他们 LiveData 的使用 LiveData 是一种可用于任何数据的封装容器...= null) //根据条件返回对应的 livedata else //根据条件返回对应的 livedata } 合并多个 LiveData var live1 =

92220

Android LiveData 使用详解

这篇博客让我们一起来了解一下 LiveData 是怎样使用的?...---- 为什么要引进 LiveData LiveData 是一个可以被观察的数据持有类,它可以感知 Activity、Fragment或Service 等组件的生命周期。...接下来,让我们一起来看一下 LiveData 的使用 ---- LiveData 使用 基本使用 引入相关的依赖包 // ViewModel and LiveData implementation "...implementation "android.arch.lifecycle:livedata:1.1.0" 在代码中使用 LiveData 是一个抽象类,它的实现子类有 MutableLiveData...LiveData 内部已经实现了观察者模式,如果你的数据要同时通知几个界面,可以采取这种方式 我们知道 LiveData 数据变化的时候,会回调 Observer 的 onChange 方法,但是回调的前提是

4.8K40

Jetpack组件之LiveData

这种感知能力确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。 优势 确保界面符合数据状态 LiveData 遵循观察者模式。...()对LiveData所包装的数据进行观察,我们也可以通过Livedata的postValue()或Livedata的setValue()来完成修改数据,postValue()用在非UI线程中,setValue...扩展LiveData LiveData的优势之一就是共享资源,将LiveData类实现一个自定义单例。...return cLiveData; } }); 合并多个LiveData 同时监听多个LiveData,只要其中一个LiveData更新则收到通知,通过LiveData的子类MediatorLiveData...LiveData自带生命周期感知能力,它本身可感知数据更新,因此,通过LiveData可以实现一个自带生命周期感知能力的事件总线框架。

78930

【译】LiveData三连

❝老实说,LiveData是一个可观察的数据持有者。它让你的应用程序中的组件,通常是UI,能够观察LiveData对象的变化。...这就是数据变化用户界面变化周期在LiveData中的工作方式。 LiveData的新特点是它具有生命周期意识。...LiveData的功能非常强大,以至于有些人使用LiveData实现了事件总线机制。...如果你有一个实际的Stream,它可能发生背压的问题,那么LiveData就不能解决你的问题。原因是LiveData并不支持它。LiveData的目的是在观察者处于/进入活动状态时向UI推送最新的值。...LiveData并不能对你的线程管理提供完全的控制权。LiveData基本上有两种选择:同步更新或从工作线程发布异步值。

1.6K20

Android-Jetpack笔记-LiveData

LiveData即有生命的数据,通过观察者模式实现,当数据发生变化时可以收到回调。同时还具备感知宿主生命周期的能力。...Jetpack笔记代码 本文源码基于SDK 29 使用 引入依赖: def lifecycle_version = "2.2.0" //extensions包含Lifecycles、LiveData、...原理 首先看mLiveData.observe, //LiveData.java public void observe(@NonNull LifecycleOwner owner, @NonNull...再看下另一个实现, //LiveData.AlwaysActiveObserver @Override boolean shouldBeActive() { //直接返回true return...优点: 使用简单,可以避免内存泄漏,RxJava则需结合RxLifecycle 能感知生命周期,在页面活跃状态才进行通知,可以避免页面不可见时还在占资源 参考文章 掘金-Android官方架构组件LiveData

54320
领券