Узнайте о жизненном цикле запросов, созданных с помощью Cronet, и о том, как управлять ими с помощью методов обратного вызова, предоставляемых библиотекой.
Обзор жизненного цикла
 Сетевые запросы, созданные с помощью библиотеки Cronet, представлены классом UrlRequest . Следующие понятия важны для понимания жизненного цикла UrlRequest :
- Штаты
- Состояние — это особое состояние, в котором находится запрос в определенное время. Объекты UrlRequest, созданные с использованием библиотеки Cronet, в своем жизненном цикле проходят разные состояния. Жизненный цикл запроса включает начальное состояние, а также несколько переходных и конечных состояний.
-  Методы UrlRequest
-  Клиенты могут вызывать определенные методы объектов UrlRequestв зависимости от состояния. Методы переводят запрос из одного состояния в другое.
-  Методы Callback
-  Реализуя методы класса UrlRequest.Callback, ваше приложение может получать обновления о ходе выполнения запроса. Вы можете реализовать методы обратного вызова для вызова методов объектаUrlRequest, которые переводят жизненный цикл из одного состояния в другое.
 В следующем списке описан поток жизненного цикла UrlRequest :
-  Жизненный цикл находится в состоянии «Начало» после того, как ваше приложение вызывает метод start().
-  Сервер может отправить ответ о перенаправлении, который передает поток методу onRedirectReceived(). В этом методе вы можете выполнить одно из следующих действий клиента:-  Следуйте за перенаправлением, используя followRedirect(). Этот метод возвращает запрос в состояние «Начало» .
-  Отмените запрос с помощью cancel(). Этот метод передает запрос в методonCanceled(), где приложение может выполнять дополнительные операции, прежде чем запрос будет переведен в конечное состояние «Отменено» .
 
-  Следуйте за перенаправлением, используя 
-  После того как приложение выполняет все перенаправления, сервер отправляет заголовки ответа и вызывается метод onResponseStarted(). Запрос находится в состоянии Ожидание чтения() . Приложение должно вызвать методread(), чтобы попытаться прочитать часть тела ответа. После вызоваread()запрос находится в состоянии чтения , где возможны следующие результаты:-  Действие чтения прошло успешно, но доступно больше данных. Вызывается onReadCompleted(), и запрос снова находится в состоянии ожидания чтения() . Приложению следует снова вызвать методread(), чтобы продолжить чтение тела ответа. Приложение также может прекратить чтение запроса с помощью методаcancel().
-  Действие чтения прошло успешно, и доступных данных больше нет. Вызывается метод onSucceeded(), и запрос теперь находится в конечном состоянии «Успешно» .
-  Действие чтения не удалось. Вызывается метод onFailed, и окончательное состояние запроса теперь Failed .
 
-  Действие чтения прошло успешно, но доступно больше данных. Вызывается 
 На следующей диаграмме показан жизненный цикл объекта UrlRequest : 
 Жизненный цикл запроса Cronet
| Легенда | |
|---|---|
| UrlRequest | 
