首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Jetpack】Room + ViewModel + LiveData 综合使用 ( 核心要点说明 | 组合方式 | 代码示例 )

与 数据模型 Model 之间 数据交互的 桥梁 ; LiveData 是基于 ViewModel 的 , 是 对 ViewModel 数据维护的一个补充 ; 在 ViewModel 中使用了 LiveData...架构设计 建议 : 下面分析上述 架构图 中的 架构分层 ; Model 数据模型层 : 本地数据访问 : 使用 Room 框架 访问本地的 SQLite 数据库 ; 远程数据访问 : 使用 Retrofit...; Dao 查询方法的返回值由 List 变为 LiveDataList> ; Room 框架中 , Entity 实体类 , Database 数据库实体类 ,...List> 查询方法 , 只能在数据库数据发生改变被动回调时才能查询出数据 , 如果主动调用该方法查询数据库 , 会返回一个空数据的 LiveData ; 如果想要手动主动查询数据库...@Insert fun insert(student: Student) /** * 从数据库表中删除元素 */ @Delete fun delete

1K20

开发以太坊安卓钱包系列3 - 资产信息展示

View 通常对应于Activity/Fragment/自定义View Model:则是和数据相关的模块。...View 与 Model 不直接发生联系, 而是通过ViewModel负责接收View层的事件以及获取并处理数据,ViewModel层的数据变化也会通知给View层进行相应的UI的更新,从而实现业务逻辑和...ViewModel 还可以用于不同界面间数据共享。 LiveData是一个可观察的数据持有者类。观察者可以方便我们以异步的方式获取数据,同时LiveData也是有生命周期感知的。...显示当前账号 可以分为两个步骤: •从数据库中读取账号;•界面显示账号 TokensViewModel中定义了一个MutableLiveData defaultWallet ,从数据库中读取账号会保存在...在上一篇导入账号及账号管理[5],所有的账号使用greenDao 存储起来, 因此我们只需要把所有账号从加载出来,挑选出当前选中的那一个。

1.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    谁能取代Android的LiveData- StateFlow or SharedFlow?

    这方面的两个主要原因是: LiveData与UI紧密相连 LiveData与Android平台紧密相连 我们可以从这两个事实中得出结论,从Clean Architecture的角度来看,虽然LiveData...Using LiveData end-to-end img 让我们首先展示一下从数据源一直到视图的LiveData的使用。数据源负责通过GeoQuery连接到Firebase实时数据库。...在这种情况下,你可以通过使用Flow.asLiveData()扩展函数在ViewModel中轻松地从Flow转换为LiveData。...然而,为了使这种架构顺利运行,你需要保证你的每个其他组件都从ViewModel访问你的LiveData,而不是直接从Repository访问Flow。...它还支持将这些数据作为一个类的实例而不是DataSnapshot来获取。这是通过Flow转换完成的。该库的源代码完成了本文中给出的例子。

    1.6K20

    Android技术栈(四)Android Jetpack MVVM 完全实践

    要回答这个问题首先就要介绍MVC与MVP这两种模式,从MVC到MVVM其实大家想的都是怎么把Model和View尽可能的拆开(熟悉三者定义的朋友可以跳过该节). 1.2.1 MVC MVC(Model-View-Controller...`This a string`}" 自动导入的context变量,你可以在xml中的任意表达式使用context这个变量,该Context是从该布局的根View的getContext获取的,如果你设置了自己的...设计原则: View层不应该承担处理数据的责任,它应该只负责数据如何显示. 它不应该直接持有Model层的任何引用,也不应该直接持有Model层的数据....View层正常的行为应该是观察某个ViewModel,间接获取该ViewModel从Model层中获取并处理过能在View层上直接显示的数据....ViewModel与Model的关系应该是——将Model层产生的数据翻译成View层能够直接消化吸收的数据。

    3.9K01

    是时候更新手里的武器了—Jetpack架构组件简析

    Jetpack-架构组件 先简单说下MVVM,Model—View—ViewModel。 Model层主要指数据,比如服务器数据,本地数据库数据,所以网络操作和数据库读取就是这一层,只保存数据。...View层主要指UI相关,比如xml布局文件,Activity界面显示 ViewModel层是MVVM的核心,连接view和model,需要将model的数据展示到view上,以及view上的操作数据反映转化到...” 主要指的就是数据绑定库DataBinding,下面从六个方面具体介绍下 配置应用使用数据绑定: android { ......,在这个案例中也就是swipeRefreshLayout下滑的时候会导致数据进行改变,于是数据对象会从isSwipeRefreshLayoutRefreshing方法获取到最新的数值,也就是从view更新过来的数据...fun insert(users: List) } 然后就可以进行数据库操作了,很简单吧。

    2.9K20

    “终于懂了“系列:Jetpack AAC完整解析(四)MVVM - Android架构探索!

    2.1 MVC MVC,Model-View-Controller,职责分类如下: Model,模型层,即数据模型,用于获取和存储数据。...2.2 MVP MVP,Model-View-Presenter,职责分类如下: Model,模型层,即数据模型,用于获取和存储数据。...仓库层 要做的主要工作是判断调用方请求的数据应该是从本地数据源中获取还是从网络数据源中获取,并将获取到的数据返回给调用方。...现在,UserListViewModel 是不知道数据来源的,因此我们可以为ViewModel提供从几个不同的数据源获取数据。...: 2021/1/24 从本地数据库获取 } //存入本地数据库 (从服务端获取数据后可以调用) private void saveUsersToLocal(List<User

    2.1K20

    Spring认证中国教育管理中心-Apache Geode 的 Spring 数据教程八

    但是,Spring Data for Apache Geode 认识到典型的开发人员工作流程可能是从一个环境中提取数据并将其导出到多个快照文件中,将它们全部压缩,然后方便地将 zip 文件移动到另一个环境进行导入... 5.8.3.快照事件 默认情况下,Spring Data for Apache Geode 在启动时使用 Apache Geode 的快照服务来导入数据...,在关闭时使用 Apache Geode 的快照服务来导出数据。...但是,您可能希望从 Spring 应用程序中触发定期的、基于事件的快照,用于导入或导出。...您可以使用 Spring 的 ApplicationEventPublisher 接口从您的应用程序中触发导入和导出快照应用程序事件,如下所示: @Component public class ExampleApplicationComponent

    45220

    【Jetpack】ViewModel + LiveData + DataBinding 综合使用 ( 核心要点说明 | 组合方式 | 代码示例 )

    一、ViewModel + LiveData + DataBinding 核心要点 1、ViewModel 使用要点 ViewModel 架构组件 是 视图 View 与 数据模型 Model 之间 数据交互的...架构组件后 , 视图 View 与 数据模型 Model 之间实现了解耦 , 同时也能 保证二者之间的双向数据交互 , 减少了 Activity 代码量 , 增加了应用程序的可维护性 ; ViewModel...ViewModel 中的数据发生了变化 , 如何将变化应用到视图组件中 , 在视图中显示最新的数据内容 , 此时就用到了 LiveData 组件 ; 在 ViewModel 的基础上 , 通过 引入 LiveData..., 可以将 运行过程中 ViewModel 中的 Model 模型数据改变 通知 视图 View , 令视图组件显示最新的数据内容 ; 在 ViewModel 中使用了 LiveData 后 , 必须调用...Model / 视图模型 ViewModel 视图 View DataBinding 中除了绑定 数据模型 Model 之外 , 还可以直接绑定 视图模型 ViewModel , 这是 DataBinding

    1.6K20

    App 组件化模块化之路——Android 框架组件(Android Architecture Components)使用指南

    ViewModel LiveData Room 假设要实现一个用户信息展示页面。这个用户信息是通过REST API 从后台获取的。...现在已经有了 UI 组件和 ViewModel,那么我们如何将它们进行连接呢?这时候就需要用到 LiveData 组件了。...获取数据 现在已经成功的把 ViewModel 与 UI 组件(fragment)进行了通信。那么 ViewModel 又是如何获取数据的呢? 假设我们的数据是通过REST API 从后天获取的。...Room 组件提供了数据库操作,配合 LiveData 使用可以监听数据库的变化,进而更新 UI 组件。...UI 组件通过 ViewModel 访问数据,而 ViewModel 通过 LiveData 监听数据的变化,并且使用 Repository 模式封装数据源。

    1.7K20

    Android UI 架构演进:从 MVC 到 MVP、MVVM、MVI

    MVC MVC 其实是 Android 默认的设计,MVC 里将代码分为三个部分: View: Layout XML 文件; Model: 负责管理业务数据逻辑,如网络请求、数据库处理; Controller...: 负责管理业务数据逻辑,如网络请求、数据库处理,与 MVP 中 Model 的概念相同; ViewModel: 存储视图状态,负责处理表现逻辑,并将数据设置给可观察数据容器。...在实现细节上,View 和 Presenter 从双向依赖变成 View 可以向 ViewModel 发指令,但 ViewModel 不会直接向 View 回调,而是让 View 通过观察者的模式去监听数据的变化...在实现细节上,View 和 ViewModel 之间的多个交互(多 LiveData 数据流)变成了单数据流。...但是不可否认,从 React 到 Flutter,从 MVI 到 Compose,响应式编程似乎有一统天下的趋势。未来会怎么样,我们拭目以待。

    1.5K10

    Android Jetpack架构组件(四)之LiveData

    使用 LiveData 保存数据时,由于数据和组件是分离的,所以当组件被销毁时可以保证数据不会丢失。...因此,我们认为LiveData就是一个数据容器,它负责将数据包裹起来,使数据成为被观察者,当数据发生变化时,LiveData会通知观察者以便观察者做出响应。...UI 组件只需观察相关数据,不需要停止或恢复观察,LiveData 会自动管理这些操作,因为 LiveData 可以感知生命周期状态的更改。 数据始终保持最新状态。...在生命周期从非激活状态变为激活状态,始终保持最新数据,如后台 Activity 在返回到前台后可以立即收到数据的最新状态。 适当的配置更改。...3.2 LiveData使用示例 3.2.1 创建 LiveData 对象 LiveData是一种可用于任何数据的封装容器,其中包括可实现 Collections 的对象,如 List。

    3.3K00

    Jetpack:在数据变化时如何优雅更新Views数据

    这样Observer对象就与LiveData产生了订阅关系,当LiveData数据发生变化时通知,而在Observer更新数据,所以Observer通常是Activity和Fragment。...三个步骤就定义了使用LiveData的方式,从步骤可以看出,使用了观察者模式,当LiveData对象持有数据发生变化,会通知对它订阅的所有处于活跃状态的订阅者。...将LiveData解耦,不和特定的Activity或Fragment绑定在一起。 创建 观察LiveData 的对象 有了数据源之后,总需要有观察者来观察数据源,不然数据源就失去了存在的意义。...model.currentName.observe(this, nameObserver) } } 在讲nameObserver对象传给observe()方法后,存储在LiveData最近的值以参数的形式立即传递到...这里通过button的点击来给LiveData设置值,也可以网络或者本地数据库获取数据方式来设置值。 扩展 LiveData 可以通过下面的栗子来看看如何扩展LiveData。

    3K30
    领券