You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android ViewModel:是否应参照官方示例借用LiveData的observe()方法?

ViewModel中LiveData的观察者注册实现

在使用ViewModel时,View层得主动观察ViewModel的状态变化,把自己注册成观察者才行。谷歌官方教程里,这个注册操作是委托给LiveData对象的observe()方法来处理的,我给你贴一段示例代码,一看就明白:

public class MyViewModel extends ViewModel { 
    private MutableLiveData<List<User>> users; 
    public LiveData<List<User>> getUsers() { 
        if (users == null) { 
            users = new MutableLiveData<List<User>>(); 
            loadUsers(); 
        } 
        return users; 
    } 
    private void loadUsers() { 
        // 这里写加载用户数据的逻辑,比如从网络接口或本地数据库获取数据
    } 
}

简单捋下这段代码的逻辑:ViewModel内部维护了一个MutableLiveData类型的用户列表对象,当View第一次调用getUsers()方法时,会先初始化这个LiveData实例,同时触发数据加载操作。之后View就能通过调用这个LiveData的observe()方法,把自身注册为观察者,一旦用户数据有更新,View就能第一时间收到通知并做出相应的界面更新。

内容的提问来源于stack exchange,提问作者Blcknx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:19:22