최근에 구글에서 소개 한 안드로이드 아키텍처를 탐구하고 있습니다. 문서 에서 다음 을 찾았습니다.
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 호출을 할 것입니다.
가져온 데이터를 데이터베이스 (Room)에 삽입하고 데이터에 따라 UI를 업데이트하겠습니다.
이를 위해 권장되는 접근 방식은 무엇입니까?
메서드 Service
에서 API를 호출 하기 위해 a 를 시작하면 loadUsers()
어떻게 그 MutableLiveData<List<User>> users
변수를 업데이트 할 수 Service
있습니까?