¿Retrofit realiza llamadas de red en el hilo principal?

Estoy tratando de explorar Retrofit + OkHttp en Android. Aquí hay un código que encontré en línea:

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

Si no uso el servicio de ejecutor, ¿se ejecutará mi código en el hilo principal? ¿Debo hacer solicitudes web en un nuevo hilo por lo tanto?

El método que devuelve un valor lo hace de forma sincrónica.

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

Para hacerlo Asíncrono, todo lo que necesita es agregar una Devolución de llamada.

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

Espero que esto ayude.

¡Saludos!

Los métodos de modificación pueden declararse para la ejecución síncrona o asincrónica.

Un método con un tipo de devolución se ejecutará de forma síncrona.

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

La ejecución asincrónica requiere que el último parámetro del método sea una Callback .

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

En Android, las devoluciones de llamada se ejecutarán en el hilo principal. Para las aplicaciones de escritorio, las devoluciones de llamadas se realizarán en el mismo hilo que ejecutó la solicitud HTTP.

Retrofit también integra RxJava para admitir métodos con un tipo de rx.Observable de rx.Observable

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

Las solicitudes observables se suscriben de forma asíncrona y se observan en el mismo hilo que ejecutó la solicitud HTTP. Para observar en un hilo diferente (por ejemplo, el hilo principal de Android) llame a observeOn(Scheduler) en el Observable devuelto.

Nota: la integración de RxJava es experimental.