Obtén información sobre el ciclo de vida de las solicitudes creadas con Cronet y cómo administrarlas usando los métodos de devolución de llamada proporcionados por la biblioteca.
Descripción general del ciclo de vida
Las solicitudes de red creadas con la Biblioteca de Cronet están representadas con la clase UrlRequest
.
Los siguientes conceptos son importantes para comprender el ciclo de vida de UrlRequest
:
- Estados
- Un estado es la condición particular en la que se encuentra la solicitud en un momento específico. Los objetos UrlRequest creados con la Biblioteca de Cronet pasan por diferentes estados durante su ciclo de vida. El ciclo de vida de la solicitud incluye un estado inicial y varios estados transitorios y finales.
- Métodos
UrlRequest
- Dependiendo del estado, los clientes pueden llamar a métodos específicos en objetos
UrlRequest
. Los métodos mueven la solicitud de un estado a otro. - Métodos
Callback
- Al implementar métodos de la clase
UrlRequest.Callback
, tu app puede recibir actualizaciones sobre el progreso de la solicitud. Puedes implementar los métodos de devolución de llamada para invocar métodos del objetoUrlRequest
, que llevan el ciclo de vida de un estado a otro.
La siguiente lista describe el flujo del ciclo de vida de UrlRequest
:
- El ciclo de vida está en el estado Iniciado después de que tu app invoca el método
start()
. - El servidor podría enviar una respuesta de redireccionamiento, que lleva el flujo al método
onRedirectReceived()
. En este método, puedes realizar una de las siguientes acciones del cliente:- Seguir el redireccionamiento usando
followRedirect()
. Este método devuelve la solicitud al estado Iniciado. - Cancelar la solicitud con
cancel()
. Este método lleva la solicitud al métodoonCanceled()
, donde la app puede realizar operaciones adicionales antes de que la solicitud se mueva al estado final Cancelado.
- Seguir el redireccionamiento usando
- Después de que la app sigue todos los redireccionamientos, el servidor envía los encabezados de respuesta y se llama al método
onResponseStarted()
. La solicitud está en el estado Esperando para leer(). La app debe llamar al métodoread()
para intentar leer parte del cuerpo de la respuesta. Después de llamar aread()
, la solicitud se encuentra en el estado Leyendo, donde verás los siguientes resultados posibles:- Se completó correctamente la acción de lectura, pero hay más datos disponibles. Se llama a
onReadCompleted()
, y la solicitud se encuentra en el estado Esperando para leer() una vez más. La app debería volver a llamar al métodoread()
para continuar leyendo el cuerpo de la respuesta. La app también podría dejar de leer la solicitud utilizando el métodocancel()
. - Se completó correctamente la acción de lectura y no hay más datos disponibles.
Se llama al método
onSucceeded()
, y la solicitud se encuentra en el estado final Completado. - La acción de lectura falló. Se llama al método
onFailed
, y el estado final de la solicitud ahora es No se pudo completar la solicitud.
- Se completó correctamente la acción de lectura, pero hay más datos disponibles. Se llama a
En el siguiente diagrama, se muestra el ciclo de vida de un objeto UrlRequest
:
Ciclo de vida de la solicitud de Cronet
Leyenda | |
---|---|
UrlRequest |