Модернизация делает сетевые звонки на основной нити?
Вопрос
Я пытаюсь исследовать модернику + 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 - экспериментальная.