最近、Googleによって最近導入された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()
、私が最初にそのデータをデータベース(ルーム)をチェックする場所機能私は非同期でデータを取得していますそこでデータを取得できない場合は、WebサーバーからデータをフェッチするためのAPI呼び出しを行います。
取得したデータをデータベース(Room)に挿入し、データに応じてUIを更新します。
これを行うための推奨アプローチは何ですか?
メソッドService
からAPIを呼び出すを開始した場合、そこから変数loadUsers()
を更新するにはどうすればよいですか?MutableLiveData<List<User>> users
Service