最近我正在探索谷歌最近推出的 Android 架构。从文档中我发现了这个:
public class MyViewModel extends ViewModel {
private MutableLiveData<List<User>> users;
public LiveData<List<User>> getUsers() {
if (users == null) {
users = new MutableLiveData<List<Users>>();
loadUsers();
}
return users;
}
private void loadUsers() {
// do async operation to fetch users
}
}
活动可以按如下方式访问此列表:
public class MyActivity extends AppCompatActivity {
public void onCreate(Bundle savedInstanceState) {
MyViewModel model = ViewModelProviders.of(this).get(MyViewModel.class);
model.getUsers().observe(this, users -> {
// update UI
});
}
}
我的问题是,我要这样做:
在
loadUsers()
函数中我异步获取数据,我将首先检查数据库(房间)中的数据如果我没有在那里获取数据,我将调用 API 从 Web 服务器获取数据。
我会将获取的数据插入数据库(房间)并根据数据更新 UI。
推荐的方法是什么?
如果我开始Service
从该loadUsers()
方法调用 API,我该如何更新MutableLiveData<List<User>> users
变量Service
?