সম্প্রতি আমি অ্যান্ড্রয়েড আর্কিটেকচারটি অন্বেষণ করছি, এটি গুগল সম্প্রতি চালু করেছে। ডকুমেন্টেশন থেকে আমি এটি খুঁজে পেয়েছি:
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()
ফাংশন আমি কোথায় আমি প্রথম যে ডেটার জন্য ডেটাবেস (রুম) চেক করবে অ্যাসিঙ্ক্রোনাস ডেটা আনার করছিআমি যদি সেখানে ডেটা না পাই তবে আমি ওয়েব সার্ভার থেকে ডেটা আনার জন্য একটি এপিআই কল করব।
আমি প্রাপ্ত তথ্যটি ডাটাবেসে (ঘর) সন্নিবেশ করব এবং তথ্য অনুসারে ইউআই আপডেট করব।
এটি করার জন্য প্রস্তাবিত পদ্ধতির কী?
যদি আমি পদ্ধতি Service
থেকে এপিআই কল করতে একটি শুরু করি তবে আমি loadUsers()
কীভাবে সেই MutableLiveData<List<User>> users
থেকে চলকটি আপডেট করতে পারি Service
?