Ciclo de vida de solicitudes de Cronet

Obtén información sobre el ciclo de vida de las solicitudes creadas con Cronet y cómo administrarlas con los métodos de devolución de llamada que proporciona la biblioteca.

Descripción general del ciclo de vida

Las solicitudes de red creadas con la biblioteca Cronet se representan 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
Los clientes pueden llamar a métodos específicos en objetos UrlRequest según el estado. Los métodos mueven la solicitud de un estado a otro.
Métodos Callback
Cuando implementas 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 llamar a los métodos del objeto UrlRequest que llevan el ciclo de vida de un estado a otro.

En la siguiente lista, se describe el flujo del ciclo de vida de UrlRequest:

  1. El ciclo de vida se encuentra en el estado Iniciado después de que tu app llama al método start().
  2. 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:
    • Sigue el redireccionamiento mediante followRedirect(). Este método devuelve la solicitud al estado Iniciado.
    • Cancelar la solicitud con cancel(). Este método lleva la solicitud al método onCanceled(), en el que la app puede realizar operaciones adicionales antes de que la solicitud se mueva al estado final Cancelado.
  3. 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étodo read() para intentar leer parte del cuerpo de la respuesta. Después de llamar a read(), la solicitud se encuentra en el estado Reading, 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 vuelve a tener el estado Esperando para leer(). La app debe volver a llamar al método read() para seguir leyendo el cuerpo de la respuesta. La app también podría dejar de leer la solicitud utilizando el método cancel() .
    • Se completó correctamente la acción de lectura y no hay más datos disponibles. Se llama al método onSucceeded(), y la solicitud ahora se encuentra en el estado final Completada.
    • La acción de lectura falló. Se llama al método onFailed, y el estado final de la solicitud ahora es Con errores.

En el siguiente diagrama, se muestra el ciclo de vida de un objeto UrlRequest:

Diagrama del ciclo de vida de la solicitud de Cronet
El ciclo de vida de la solicitud de Cronet

Leyenda
Ícono de la leyenda del estado inicial de Cronet estado inicial Ícono de la leyenda del estado final de Cronet estado final
Ícono de la leyenda del estado de transición de Cronet estado de transición Ícono de la leyenda de los métodos de devolución de llamada de Cronet métodos de devolución de llamada
Ícono de la leyenda de acción del cliente de Cronet métodos UrlRequest