LiveData 是一个可以被观察的数据持有类,它可以感知 Activity、Fragment或Service 等组件的生命周期。它可以做到在组件处于激活状态的时候才会回调相应的方法,从而刷新相应的 UI。不用担心发生内存泄漏。当 config 导致 activity 重新创建的时候,不需要手动取处理数据的储存和恢复。它已经帮我们封装好了。当 Actiivty 不是处于激活状态的时候,如果你想 l
转载
2024-01-31 01:38:39
155阅读
1,使用场景如果你在 Android 应用中使用 Kotlin 协程,并且需要向多个订阅者发送数据,则可以选择使用 MutableSharedFlow。如果你在 Android 应用中,需要进行界面与数据之间的通信,并且希望数据更新操作在主线程中进行,并且只有一个观察者,那么 MutableLiveData 是一个不错的选择2,二者区别 &nbs
# Android MutableLiveData 使用指南
Android开发中,数据的管理和更新是一个非常重要的方面。MutableLiveData作为Android Architecture Components中的一部分,为我们提供了一种方便的方式来处理应用中的数据变化与更新。本文将介绍MutableLiveData的使用,并通过代码示例深入解析其工作原理。
## 什么是 Mutabl
原创
2024-10-13 06:27:13
621阅读
# Android MutableLiveData使用实例教程
作为一名经验丰富的开发者,我将向你介绍如何在Android应用中使用MutableLiveData。MutableLiveData是一种可观察的数据持有类,它可以用来在Android应用中实现数据的观察和更新。
## 流程图
```mermaid
flowchart TD
A[创建ViewModel] --> B[创建M
原创
2024-06-03 06:35:25
261阅读
# Android MutableLiveData的使用教程
作为一名刚入行的开发者,你可能会对Android开发中的`LiveData`和`MutableLiveData`感到困惑。别担心,这篇文章将帮助你理解并掌握`MutableLiveData`的使用。
## 什么是LiveData和MutableLiveData?
`LiveData`是Android架构组件的一部分,它是一个可观察
原创
2024-07-16 12:07:50
638阅读
# MutableLiveData 通知丢失问题分析
在开发 Android 应用时,`LiveData` 是一个非常重要的组件。它能够在数据变化时通知 UI 组件更新,确保了应用的反应性与可维护性。其中,`MutableLiveData` 是 `LiveData` 的一个可变版本,允许我们主动修改其值。但在其使用过程中,很多开发者会遇到“通知丢失”的问题。本文将分析这一现象,并提供相应的解决方
原创
2024-10-09 03:39:59
146阅读
# Android BottomSheetDialogFragment MutableLiveData Bug
## Introduction
The `BottomSheetDialogFragment` is a component in Android that provides a modal bottom sheet dialog. It allows developers to d
原创
2023-12-04 12:46:29
56阅读
LiveData是Architecture Components中的重要一员,本篇将带领大家从源码层面深层次理解它的机制。(此篇不是零基础讲解LiveData和ViewModel的使用,建议往下看的小伙伴先熟悉LiveData和ViewModel的基本使用)使用:首先在build.gradle中引入:def livedata_version = '2.3.0-alpha01'
def lifecy
从 API 1 开始,处理 Activity 的生命周期 (lifecycle) 就是个老大难的问题,基本上开发者们都看过这两张生命周期流程图:△ Activity 生命周期流程图随着 Fragment 的加入,这个问题也变得更加复杂:△ Fragment 生命周期流程图而开发者们面对这个挑战,给出了非常稳健的解决方案: 分层架构。分层架构△ 表现层 (Presentation Layer)、域层
# 实现 Android MutableLiveData 数据粘性
在 Android 开发中,`MutableLiveData` 是一个非常强大的工具,它可以帮助我们处理组件之间的数据共享和状态变化。然而,有时我们希望在 Activity 或 Fragment 重新创建时保留这些数据,这被称为“数据粘性”。本文将指导你如何实现这一功能,采用 MutableLiveData 来保持数据的持久性。
启动虚拟机时,在 launch options 窗口中 有个 wipe user data ,勾选它,将会让虚拟机 【恢复出厂设置】2.【如果想让自己的应用程序有多个启动图标:】为一个应用的 多个Activity都设置该过滤器,使之都成为优先启动的Activity,并且为这几个Activity设置icon,与 label属性
那么部署后将发现手机中会有多个图标(icon与label都不同
转载
2024-08-29 16:09:25
79阅读
# Android MutableLiveData 跨组件方法详解
在 Android 应用程序开发中,数据管理和状态监听是至关重要的。MutableLiveData 是 Android Jetpack 中的一个核心组件,它允许观察者监听数据的变化。在这篇文章中,我们将探讨如何在不同组件之间使用 MutableLiveData,并提供示例代码来帮助你理解其用法。
## 什么是 MutableL
原创
2024-10-04 03:21:14
142阅读
一、介绍LiveData是Jetpack提供的一种响应式编程组件,它可以包含任何类型的数据,并在数据发生 变化的时候通知给观察者。LiveData特别适合与ViewModel结合在一起使用,虽然它也可以单 独用在别的地方,但是在绝大多数情况下,它是使用在ViewModel当中的。二、使用class PublishViewModel : ViewModel() {
var content
前言 LiveData与ViewMode是经常搭配在一起使用的,但是为了不太混乱,我还是拆分开来说明,此篇博客只讲解 LiveData 与 MutableLiveData的概念与使用方式(但是会涉及到ViewMode的部分代码).LiveData是干什么的? 由于LiveData和MutableLiveData都是一个概念的东西(只是作用范围不同)所以就不重复解释了,直接理解LiveData就可以
Android数据库基础,SQLite数据库的使用及一个程序实例。附有详细注释。
Android SQLite数据库使用 学习与代码实践 SQLiteOpenHelper 类 用SQLiteOpenHelper 类中的 getWritableDatabase()和getReadableDatabase()方法可以获得数据库
转载
2023-08-30 21:05:21
61阅读
空指针是我们 Java 开发人员经常遇到的一个基本异常,这是一个极其普遍但似乎又无法根治的问题。本文,栈长将带你了解什么是空指针,还有如何有效的避免空指针。什么是空指针?当一个变量的值为 null 时,在 Java 里面表示一个不存在的空对象,没有实际内容,没有给它分配内存,null 也是对象成员变量的默认值。所以,一个对象如果没有进行初始化操作,这时候,如果你调用这个对象的方法或者变量,就会出现
前言 只要使用过一段时间的LiveData就会发现,LiveData会经常多次回调数据。我们经常碰到的这个问题。问题复现 我们的ViewModel里是给Activity持有的并且里面有一个LiveData数据,我们A_Fragment现在获得Activity的ViewModel并且注册LiveData数据成为观察者,这个时候我们setValue()就会让前台的A_Fra
# 使用 Android ViewModel 和 MutableLiveData 的指南
在 Android 开发中,MVVM 架构是一个流行的设计模式。它能帮助我们在 UI 界面和业务逻辑之间建立清晰的分层。`ViewModel` 和 `MutableLiveData` 是实现 MVVM 的关键组件。本文将带你一步步理解如何将这两个组件结合使用,以实现更干净可维护的代码结构。
## 1. 过
原创
2024-10-04 05:13:05
72阅读
说在前面本次推出 Android Architecture Components 系列文章,目前写好了四篇,主要是关于 lifecycle,livedata 的使用和源码分析,其余的 Navigation, Paging library,Room,WorkMannager 等春节结束之后会更新,欢迎关注我的公众号,有更新的话会第一时间会在公众号上面通知。Android lifecycle 使用详解
转载
2023-11-22 20:09:46
223阅读
在update_engine-DownloadAction(一)中对DownloadAction介绍到了DeltaPerformer的Write方法。下面开始介绍Write方法。src/system/update_engine/payload_consumer/delta_performer.cc1 bool DeltaPerformer::Write(const void* bytes, siz