Je viens juste de commencer à apprendre à utiliser RxJava 2 et Retrofit 2 sur Android. J'ai suivi un certain nombre de tutoriels et je suis capable de récupérer des données de mon serveur. Ma question est, quelle est la façon standard d'accéder facilement à ces données récupérées. Actuellement GSON le parse dans un objet, j'imprime le toString, mais c'est tout.Récupération des données d'un objet Observable en utilisant RxJava 2 et Retrofit 2
J'ai cette interface pour définir ma requête POST:
public interface FacebookAppLoginService {
@POST("app/fbapp_login")
Observable<User> getUser(@Body FacebookAccessToken facebookAccessToken);
}
je crée l'objet Rénovation:
Retrofit retrofit = new Retrofit.Builder()
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.baseUrl("http://rocky-garden-56471.herokuapp.com/")
.build();
Je crée ensuite un objet pour contenir le corps JSON de ma demande POST:
FacebookAccessToken facebookAccessToken = new FacebookAccessToken();
Je crée alors le observable de mon interface:
Observable<User> newUser = facebookAppLoginService.getUser(facebookAccessToken);
Enfin, je souscris à l'observable, en observant sur le thread principal, mais faire la demande sur un thread de travail (je pense), je connecte les résultats:
newUser.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(userInfo -> {
Log.i("Server Call", "Received: " + userInfo.toString());
});
L'imprimante toString correctement sortir les informations utilisateur reçues du serveur. Quelle est la manière standard d'utiliser cet objet que j'obtiens dans la fonction lambda? Je voudrais le stocker dans la base de données, ou au moins l'enregistrer dans un objet dans l'activité. Comment devrais-je faire cela?