Android:LiveData概述

LiveData 是一个可观察的数据持有者类。

与常规observable不同,LiveData是生命周期感知的,这意味着它尊重其他应用程序组件的生命周期,例如活动,片段或服务。

此感知确保LiveData仅更新处于活动生命周期状态的应用程序组件观察者

注意:

要将LiveData组件导入Android项目

LiveData将一个由Observer类表示的观察者视为生命周期处于STARTED或处于状态时处于活RESUMED状态。LiveData仅通知活动观察者有关更新的信息。注册观察LiveData对象的非活动观察者不会收到有关更改的通知

您可以注册与实现该LifecycleOwner接口的对象配对的观察者。此关系允许在相应Lifecycle对象的状态更改为时删除观察者DESTROYED。这对于活动和片段特别有用,因为它们可以安全地观察LiveData对象而不用担心泄漏 - 活动和片段在其生命周期被破坏时立即取消订阅。

一 使用LiveData的优点

一 使用LiveData的优点

使用LiveData具有以下优势:

1.确保您的UI符合您的数据状态

LiveData遵循观察者模式。Observer生命周期状态更改时,LiveData会通知对象。您可以合代码以更新这些Observer对象中的UI。每次应用程序数据更改时,您的观察者都可以在每次更改时更新UI,而不是更新UI。

2.没有内存泄漏

观察者绑定Lifecycle对象并在其相关生命周期被破坏后自行清理。

3.由于停止活动而没有崩溃

如果观察者的生命周期处于非活动状态(例如,在后端堆栈中的活动的情况下),则它不会接收任何LiveData事件。

4.不再需要手动生命周期处理

UI组件只是观察相关数据,不会停止或恢复观察。

LiveData自动管理所有这些,因为它在观察时意识到相关的生命周期状态变化。

5.始终保持最新数据

如果生命周期变为非活动状态,则会在再次变为活动状态时接收最新数据。

例如,后台活动在返回前台后立即收到最新数据。

6.适当的配置更改

如果由于配置更改(例如设备轮换)而重新创建活动或片段,则会立即接收最新的可用数据。

7.共享资源

您可以LiveData使用单例模式扩展对象以包装系统服务,以便可以在应用程序中共享它们。

该LiveData对象连接到系统服务一次,然后任何需要该资源的观察者只能观察该LiveData对象。

二 使用LiveData对象

请按照以下步骤处理LiveData对象:

创建一个LiveData用于保存特定类型数据的实例。这通常在您的ViewModel班级内完成。

创建一个Observer定义onChanged()方法的对象,该对象控制LiveData对象保持数据更改时发生的情况。您通常Observer在UI控制器中创建一个对象,例如活动或片段。

使用该方法将Observer对象附加到对象。该方法采用一个对象。这会将对象订阅到对象,以便通知其更改。您通常将对象附加到UI控制器中,例如活动或片段。

LiveDataobserve()observe()LifecycleOwnerObserverLiveDataObserver

**注意:**您可以LifecycleOwner使用该observeForever(Observer)方法注册没有关联对象的观察者。在这种情况下,观察者被认为始终处于活动状态,因此始终会收到有关修改的通知。您可以删除调用该removeObserver(Observer)方法的这些观察者。

更新存储在LiveData对象中的值时,只要附加LifecycleOwner的处于活动状态,它就会触发所有已注册的观察者。

LiveData允许UI控制器观察者订阅更新。当LiveData对象保存的数据发生更改时,UI会自动更新响应。

2.1创建LiveData对象

LiveData是一个包装器,可以与任何数据一起使用,包括实现的对象Collections,例如List。甲LiveData对象通常存储一个内ViewModel对象,并且经由吸气剂的方法被访问,如下面的示例所示&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值