Saiba mais sobre o ciclo de vida das solicitações criadas com a Cronet e como gerenciá-las usando os métodos de callback fornecidos pela biblioteca.
Visão geral do ciclo de vida
A classe UrlRequest representa solicitações de rede criadas usando a biblioteca
Cronet. Os conceitos a seguir são importantes para entender o ciclo de vida do UrlRequest:
- Estados
- Um estado é a condição específica na qual a solicitação se encontra em um período específico.
Os objetos
UrlRequestcriados com a biblioteca Cronet passam por diferentes estados no 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
UrlRequestdependendo 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, seu app pode receber atualizações sobre o andamento da solicitação. É possível implementar os métodos de callback para chamar métodos do objetoUrlRequestque levam o ciclo de vida de um estado para outro.
A lista a seguir descreve o fluxo do ciclo de vida de UrlRequest:
- O ciclo de vida fica no estado Started depois que o app chama o método
start(). - O servidor pode enviar uma resposta de redirecionamento, que leva o fluxo para o método
onRedirectReceived(). Nesse método, é possível realizar uma das seguintes ações do cliente:- Siga o redirecionamento usando
followRedirect(). Esse método retorna a solicitação ao estado Iniciado. - Cancelar a solicitação usando
cancel(). Esse método leva a solicitação ao métodoonCanceled(), em que o app pode realizar outras operações antes que a solicitação passe para o estado final Cancelado.
- Siga o redirecionamento usando
- Depois que o app segue todos os redirecionamentos, o servidor envia os cabeçalhos de resposta, e o Cronet chama o método
onResponseStarted(). A solicitação está no estado Aguardando read(). O app precisa chamar o métodoread()para tentar ler parte do corpo da resposta. Depois que o app chamaread(), a solicitação fica no estado Reading, em que há os seguintes resultados possíveis:- A ação de leitura é bem-sucedida, e há mais dados disponíveis. O Cronet
chama o método
onReadCompleted(), e a solicitação volta ao estado Waiting for read(). O app pode chamar o métodoread()novamente para continuar lendo o corpo da resposta. O app também pode interromper a leitura da solicitação usando o métodocancel(). - A ação de leitura é bem-sucedida, e não há mais dados disponíveis. O Cronet
chama o método
onSucceeded(), e a solicitação fica no estado final Succeeded. - A ação de leitura falha. O Cronet chama o método
onFailed(), e o estado final da solicitação é Failed.
- A ação de leitura é bem-sucedida, e há mais dados disponíveis. O Cronet
chama o método
O diagrama a seguir mostra o ciclo de vida de um objeto UrlRequest:
Ciclo de vida da solicitação da Cronet
| Legenda | |
|---|---|
UrlRequest |