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
相关产品推荐
相关产品推荐

