हाल ही में मैं एंड्रॉइड आर्किटेक्चर की खोज कर रहा हूं, जिसे हाल ही में Google द्वारा पेश किया गया है। से प्रलेखन मैं इस पाया है:
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()
समारोह मैं कहाँ मैं पहली बार है कि डेटा के लिए डेटाबेस (कक्ष) की जाँच करेगा एसिंक्रोनस रूप से डेटा प्राप्त करने में कर रहा हूँअगर मुझे वहां डेटा नहीं मिलता है तो मैं वेब सर्वर से डेटा लाने के लिए एक एपीआई कॉल करूंगा।
मैं प्राप्त किए गए डेटा को डेटाबेस (कक्ष) में सम्मिलित करूंगा और डेटा के अनुसार UI अपडेट करूंगा।
ऐसा करने के लिए अनुशंसित दृष्टिकोण क्या है?
यदि मैं विधि Service
से एपीआई को कॉल करने के लिए शुरू करता हूं, तो मैं उस से चर को loadUsers()
कैसे अपडेट कर सकता हूं ?MutableLiveData<List<User>> users
Service