Gần đây tôi đang khám phá Kiến trúc Android, đã được google giới thiệu gần đây. Từ Tài liệu, tôi đã tìm thấy điều này:
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
}
}
hoạt động có thể truy cập danh sách này như sau:
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
});
}
}
Câu hỏi của tôi là, tôi sẽ làm điều này:
trong
loadUsers()
hàm, tôi đang tìm nạp dữ liệu không đồng bộ, nơi đầu tiên tôi sẽ kiểm tra cơ sở dữ liệu (Phòng) cho dữ liệu đóNếu tôi không nhận được dữ liệu ở đó, tôi sẽ thực hiện một lệnh gọi API để tìm nạp dữ liệu từ máy chủ web.
Tôi sẽ chèn dữ liệu đã tìm nạp vào cơ sở dữ liệu (Phòng) và cập nhật giao diện người dùng theo dữ liệu.
Cách tiếp cận được khuyến nghị để làm điều này là gì?
Nếu tôi bắt đầu Service
gọi API từ loadUsers()
phương thức, làm cách nào để cập nhật MutableLiveData<List<User>> users
biến từ phương thức đó Service
?