Saiba mais sobre o ciclo de vida das solicitações criadas usando a Cronet e como gerenciá-las usando os métodos de callback fornecidos pela biblioteca.
Visão geral do ciclo de vida
As solicitações de rede criadas usando a Biblioteca Cronet são representadas pela classe UrlRequest
.
Os conceitos a seguir são importantes para entender o ciclo de vida de UrlRequest
:
- Estados
- Um estado é a condição específica na qual a solicitação se encontra em um período específico. Os objetos UrlRequest criados usando a Biblioteca Cronet passam por estados diferentes durante o ciclo de vida. O ciclo de vida da solicitação inclui um estado inicial e vários estados de transição e finais.
- Métodos
UrlRequest
- Os clientes podem chamar métodos específicos em objetos
UrlRequest
, dependendo do estado. Os métodos movem a solicitação de um estado para outro. - Métodos
Callback
- Ao implementar métodos da classe
UrlRequest.Callback
, o app pode receber atualizações sobre o andamento da solicitação. É possível implementar os métodos de callback para chamar métodos do objetoUrlRequest
que movem o ciclo de vida de um estado para outro.
A lista a seguir descreve o fluxo do ciclo de vida UrlRequest
:
- O ciclo de vida estará no estado Started depois que o aplicativo chamar o método
start()
. - O servidor pode enviar uma resposta de redirecionamento, que move o fluxo para o método
onRedirectReceived()
. Neste método, você pode realizar uma das seguintes ações do cliente:- Seguir o redirecionamento usando
followRedirect()
. Esse método move a solicitação de volta ao estado Started. - Cancelar a solicitação usando
cancel()
. Esse método move a solicitação para métodoonCanceled()
, no qual o app pode executar operações adicionais antes de a solicitação ser movida para o estado final Canceled.
- Seguir o redirecionamento usando
- Depois que o app segue todos os redirecionamentos, o servidor envia os cabeçalhos de resposta e o método
onResponseStarted()
é chamado. A solicitação está no estado Waiting for read(). O app deve chamar o métodoread()
para tentar ler parte do corpo da resposta. Depois queread()
for chamado, a solicitação estará no estado Reading, onde há os seguintes resultados possíveis:- A ação de leitura foi concluída, mas há mais dados disponíveis. O
onReadCompleted()
é chamado e a solicitação estará no estado Waiting for read() novamente. O app deve chamar o métodoread()
novamente para continuar lendo o corpo da resposta. O app também pode parar de ler a solicitação usando o métodocancel()
. - A ação de leitura foi concluída e não há mais dados disponíveis.
O método
onSucceeded()
é chamado e a solicitação agora está no estado final Succeeded. - Falha da ação de leitura. O método
onFailed
é chamado, e o estado final da solicitação agora é Failed.
- A ação de leitura foi concluída, mas há mais dados disponíveis. O
O diagrama a seguir mostra o ciclo de vida de um objeto UrlRequest
:
O ciclo de vida da solicitação da Cronet
Legenda | |
---|---|
UrlRequest |