J'utilise ViewModel, introduit dans IO/17. J'utilise les lignes directrices suivantes fournies sur la page des développeurs android: http://www.youtube.com/watch?v=dz5d5a9a https://developer.android.com/topic/libraries/architecture/viewmodel.htmlExécution des opérations réseau à partir de ViewModel
Voici leur exemple de code.
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
}
}
Je souhaite effectuer la demande Volley dans la méthode dite «loadUsers(). Mais je ne peux pas le faire car il a besoin d'un « contexte » comme suit
Volley.newRequestQueue(context).add(jsonObjectRequest);
Donc ma question est,
- Est-il recommandé (ou possible) pour effectuer des opérations de réseau dans un ViewModel ??
- Si oui (si possible), comment le faire?
j'ai eu ma réponse ... poster tard ... les appels api peuvent être faits à partir de VM. Mais puisque j'utilisais la volée, ma seule préoccupation était de passer le contexte en dehors de la classe de vue (activité/fragment) qui cause des problèmes. J'ai résolu ce problème en utilisant un système de rattrapage. –