我刚刚开始学习如何在 Android 中使用 RxJava 2 和 Retrofit 2。我遵循了许多教程,并且能够从我的服务器中检索数据。我的问题是,轻松访问检索到的数据的标准方法是什么。目前 GSON 将其解析为一个对象,我打印 toString,但仅此而已。
我有这个接口来定义我的 POST 请求:
public interface FacebookAppLoginService {
@POST("app/fbapp_login")
Observable<User> getUser(@Body FacebookAccessToken facebookAccessToken);
}
我创建改造对象:
Retrofit retrofit = new Retrofit.Builder()
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.baseUrl("http://rocky-garden-56471.herokuapp.com/")
.build();
然后我创建一个对象来包含我的 POST 请求的 JSON 正文:
FacebookAccessToken facebookAccessToken = new FacebookAccessToken();
然后我从我的界面创建 Observable:
Observable<User> newUser = facebookAppLoginService.getUser(facebookAccessToken);
最后,我订阅了 observable,在主线程上观察,但在工作线程上执行请求(我认为),然后记录结果:
newUser.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(userInfo -> {
Log.i("Server Call", "Received: " + userInfo.toString());
});
toString 正确打印出从服务器接收到的用户信息。在 lambda 函数中使用这个对象的标准方法是什么?我想将它存储在数据库中,或者至少将它保存在活动中的对象中。我该怎么做呢?