Как получить данные с сервера, используя RxJava / Retrofit - PullRequest
0 голосов
/ 16 мая 2018

Я сталкиваюсь с такой проблемой: получить данные с сервера и загрузить в TextView. Конечно, все довольно просто. Но я хочу реализовать это с новым для меня подходом. Я начал копаться в RxJava, но обнаружил, что он обычно не используется для таких простых задач и применяется для работы с более сложными потоками данных. Я прав? Каковы лучшие практики для моей задачи?

Итак, я реализовал это с помощью Retrofit, но также я увидел, что между Rx и Retrofit существует тесная связь. Второй, используемый для взаимодействия с Net и Rx, давайте вообще работать с данными асинхронно?

Не могли бы вы объяснить, пожалуйста, разницу между этими фреймворками и тем, как они обычно используются?

Спасибо всем за ответы заранее!

1 Ответ

0 голосов
/ 16 мая 2018

Модернизация - это в основном абстракция к собственному объекту 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 way.

Вы можете найти несколько хороших примеров Rx здесь:

...