Cómo implementar una devolución de llamada asíncrona utilizando la biblioteca de red de Retrofit de Square
Como desarrollador de iOS que comenzó a trabajar con Android me encontré con Retrofit. Entiendo cómo implementar solicitudes síncronas pero tengo problemas para implementar solicitudes asincrónicas con devoluciones de llamada de éxito / fallo. Específicamente, la sintaxis de Callback no está clara para mí y no hay ejemplos concretos de cómo hacerlo en el sitio web de Retrofit, el blog Square que introduce Retrofit, o en otro lugar que he visto. ¿Puede alguien por favor publicar algún código de ejemplo en esto? Archivé un problema en el reto de Retrofit pidiendo que actualizar el README con esta información.
- Detección de WCDMA y HSDPA en Android
- Envía instantáneamente una señal a un grupo de teléfonos móviles dentro de los 10 m
- ¿Cómo hacer que Android Virtual Device acceda a Internet?
- ¿Cómo determinar la conexión a Internet de Android?
- ¿Cómo utilizar la red para compartir archivos p2p en la plataforma Android?
- ¿Necesita el teléfono estar conectado a Internet para que el proveedor de la red pueda determinar una ubicación?
- Pérdida severa de paquetes UDP en algunos dispositivos Android
- Android, NSD / DNS-SD: detección no confiable de NsdManager y resolución de IP
- Impedir que WebView cargue la URL en Android (React Native)
- Determinar dispositivo ip público
- La red de Android es inaccesible - ENETUNREACH
- ¿Hay alguna manera de establecer un parámetro de petición base que se incluirá en cada solicitud hecha con la biblioteca de Retrofit de Square?
- Captura de paquetes de red en Android?
Después de un poco más de investigación y simplemente pasar más tiempo en el mundo de Android / Java me di cuenta de esto, utilizando el ejemplo de sus documentos.
Interfaz:
@GET("/user/{id}/photo") void listUsers(@Path("id") int id, Callback<Photo> cb);
Implementación:
RestAdapter restAdapter = new RestAdapter.Builder() .setServer("baseURL") .build(); ClientInterface service = restAdapter.create(ClientInterface.class); Callback callback = new Callback() { @Override public void success(Object o, Response response) { } @Override public void failure(RetrofitError retrofitError) { } }; service.listUsers(666, callback);