Android ViewModel简析

Android ViewModel 是 Android 架构组件的一部分,主要用于存储和管理与 UI 相关的数据,使数据能够在配置变化(如屏幕旋转)时得以保存。下面是 ViewModel 的工作原理:

  1. 生命周期感知:ViewModel 是生命周期感知型组件,不会因 UI 控件的生命周期变化(如 Activity 重建)而销毁。它的生命周期与其关联的 ViewModelStoreOwner(通常是 Activity 或 Fragment)相同。

  2. 数据持久化:当 Activity 或 Fragment 重新创建时,如在屏幕旋转时,ViewModel 不会被销毁,因此它所持有的数据也不会丢失。ViewModel 的实例只会在 ViewModelStoreOwner 被彻底销毁时(如 Activity 被彻底退出或 Fragment 被移除)才会被清理。

  3. 数据与 UI 分离:ViewModel 将数据与 UI 控件分离,确保数据逻辑和 UI 逻辑的分离,这有助于提升代码的可维护性和测试性。

  4. LiveData 支持:通常,ViewModel 与 LiveData 一起使用。LiveData 是一个可观察的数据持有类,它与 ViewModel 结合使用,可以帮助开发者实现数据变化的自动通知和 UI 的更新。

基本使用方法

  1. 定义 ViewModel

    class MyViewModel : ViewModel() {
         
         
        private val _data = MutableLiveData<String
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彬_小彬

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值