Модернизация делает сетевые звонки на основной нити?

StackOverflow https://stackoverflow.com//questions/21006807

  •  21-12-2019
  •  | 
  •  

Вопрос

Я пытаюсь исследовать модернику + OKHTTP на Android.Вот какой-то код, который я нашел в Интернете:

RestAdapter restAdapter = new RestAdapter.Builder().setExecutors(executor, executor)
.setClient(new OkClient(okHttpClient))
.setServer("blah").toString())
.build();
.

Если я не использую службу исполнителя, мой код будет работать на главной ните?Должен ли я сделать веб-запросы в новой теме, следовательно,?

Это было полезно?

Решение

Способ, который возвращает значение, делает его синхронно.

@GET("/user/{id}/asset")
Asset getUserAsset(@Path("id") int id);
.

Делать это асинхронные все, что вам нужно, это добавить обратный вызов.

@GET("/user/{id}/asset")
void getUserAsset(@Path("id") int id, Callback<Asset> cb);
.

Надеюсь, это поможет.

С уважением!

Другие советы

Методы модернизации

могут быть объявлены для синхронного или асинхронного выполнения.

Метод с типом возврата будет выполняться синхронно.

@GET("/user/{id}/photo")
Photo getUserPhoto(@Path("id") int id);
.

асинхронное исполнение требует последнего параметра метода быть генеракодицетагкодом.

@GET("/user/{id}/photo")
void getUserPhoto(@Path("id") int id, Callback<Photo> cb);
.

на Android, обратные вызовы будут выполнены на главной ните.Для настольных приложений обратные вызовы произойдут в том же потоке, которые выполняли HTTP-запрос.

Модернизация также интегрирует Rxjava для поддержки методов обратного типа GeneracodicCode

@GET("/user/{id}/photo")
Observable<Photo> getUserPhoto(@Path("id") int id);
.

Наблюдаемые запросы подписываются асинхронно и наблюдаются в том же потоке, которые выполняли HTTP-запрос.Чтобы наблюдать на другой поток (например, основной нитью Android) вызовите Callback на возвращенном генеракодичестве.

Примечание. Интеграция RXJAVA - экспериментальная.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top