我正面临这样的问题:从服务器获取数据并加载到TextView中。当然,这很简单。但我想用一些新的方法实现它。我开始挖掘RxJava,但发现它通常不用于这么简单的任务,并且应用于操作更复杂的数据流。我对吗?什么是我的任务的最佳实践?
所以我用Retrofit实现了它,但我也看到Rx和Retrofit之间存在紧密关系。用于与Net和Rx交互的第二个通常是异步操作数据吗?
您能否解释一下这些框架之间的区别以及通常如何使用?
提前感谢大家的解答!
答案 0 :(得分:0)
Retrofit基本上是Android自身对象的抽象。 HttpURLConnection
所以当然不依赖于另一个,我总是建议你学习反应式编程(RxJava),除了在这一点上几乎是一个标准,一旦你掌握了它,你的生活会更轻松。
基本的实现是:
public interface GitHubService {
@GET("users/{user}/repos")
Call<List<Repo>> listRepos(@Path("user") String user);
}
// The Retrofit class generates an implementation of the GitHubService interface.
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com/")
.build();
GitHubService service = retrofit.create(GitHubService.class);
Each Call from the created GitHubService can make a synchronous or asynchronous HTTP request to the remote webserver.
Call<List<Repo>> repos = service.listRepos("octocat");
如果您希望将RxJava
与Retrofit
包含/合并,只需简单包含必要的依赖项,而不是返回Call<T>
,您将返回Observable<T>
,当然是并且处理响应将是Rx方式。
你可以在这里找到一些不错的Rx例子: