Cykl życia żądania Cronet
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Poznaj cykl życia żądań utworzonych za pomocą Cronet i dowiedz się, jak zarządzać nimi za pomocą metod wywołań zwrotnych udostępnianych przez bibliotekę.
Omówienie cyklu życia
Żądania sieciowe utworzone przy użyciu biblioteki Cronet są reprezentowane przez klasę UrlRequest
.
Aby zrozumieć cykl życia UrlRequest
, ważne są te pojęcia:
- Stany
- Stan to konkretny warunek, w którym dane żądanie spełnia określone warunki.
Obiekty UrlRequest utworzone za pomocą biblioteki Cronet poruszają się przez różne stany w swoim cyklu życia. Cykl życia żądania obejmuje stan początkowy oraz wiele stanów przejściowych i końcowych.
UrlRequest
metod
- W zależności od stanu klienci mogą wywoływać określone metody w obiektach
UrlRequest
. Metody przenoszą żądanie z jednego stanu do innego.
Callback
metod
- Dzięki wdrożeniu metod klasy
UrlRequest.Callback
Twoja aplikacja może otrzymywać informacje o postępach w realizacji żądania. Możesz zaimplementować metody wywołań zwrotnych, aby wywoływać metody obiektu UrlRequest
, które przechodzą cykl życia ze stanu do innego.
Poniższa lista opisuje przepływ cyklu życia UrlRequest
:
- Cykl życia znajduje się w stanie Rozpoczęty, gdy aplikacja wywołuje metodę
start()
.
- Serwer może wysłać odpowiedź przekierowującą, która przekazuje przepływ do metody
onRedirectReceived()
. W ramach tej metody możesz wykonać jedno z tych działań klienta:
- Skorzystaj z przekierowania, używając
followRedirect()
.
Ta metoda przywraca żądanie do stanu Rozpoczęte.
- Anuluj prośbę za pomocą
cancel()
.
Ta metoda przekierowuje żądanie do metody onCanceled()
, w której aplikacja może wykonać dodatkowe operacje, zanim żądanie zostanie przeniesione do stanu końcowego Anulowane.
- Gdy aplikacja przejdzie wszystkie przekierowania, serwer wysyła nagłówki odpowiedzi i wywołuje metodę
onResponseStarted()
. Żądanie ma stan Oczekiwanie na odczytanie(). Aby odczytać część treści odpowiedzi, aplikacja powinna wywoływać metodę read()
. Po wywołaniu read()
żądanie przechodzi w stan Reading (Odczytywanie), co może prowadzić do takich wyników:
- Odczytanie zostało wykonane, ale dostępnych jest więcej danych.
onReadCompleted()
zostaje wywołany, a żądanie ponownie przechodzi w stan Oczekiwanie na odczytanie().
Aplikacja powinna ponownie wywołać metodę read()
, aby kontynuować odczyt treści odpowiedzi. Aplikacja może też przerwać odczyt żądania, korzystając z metody cancel()
.
- Odczytanie zostało wykonane i nie ma więcej danych.
Metoda
onSucceeded()
jest wywoływana, a żądanie ma stan końcowy Powodzenie.
- Nie udało się odczytać. Wywoływana jest metoda
onFailed
, a ostateczny stan żądania to teraz Niepowodzenie.
Ten diagram przedstawia cykl życia obiektu UrlRequest
:

Cykl życia żądania Cronet
Legenda |
|
stan początkowy |
stan końcowy |
stan przejściowy |
metody wywołania zwrotnego |
UrlRequest metody |
|
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-27 UTC."],[],[],null,["# Cronet request lifecycle\n\nLearn about the lifecycle of requests created using Cronet and how to manage\nthem using the callback methods provided by the library.\n\nLifecycle overview\n------------------\n\nNetwork requests created using the Cronet Library are represented by the\n[`UrlRequest`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest) class.\nThe following concepts are important to understand the\n[`UrlRequest`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest) lifecycle:\n\n**States**\n: A state is the particular condition that the request is in at a specific time.\n [UrlRequest](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest) objects created using the Cronet\n Library move through different states in their lifecycle. The request\n lifecycle includes an initial state, and multiple transitional and final\n states.\n\n**`UrlRequest` methods**\n: Clients can call specific methods on\n [`UrlRequest`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest) objects depending on the\n state. The methods move the request from one state to another.\n\n**`Callback` methods**\n: By implementing methods of the\n [`UrlRequest.Callback`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest.Callback) class, your\n app can receive updates about the progress of the request. You can implement\n the callback methods to call methods of the\n [`UrlRequest`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest) object that take the lifecycle\n from a state to another.\n\nThe following list describes the flow of the\n[`UrlRequest`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest) lifecycle:\n\n1. The lifecycle is in the **Started** state after your app calls the [`start()`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest#start()) method.\n2. The server could send a redirect response, which takes the flow to the [`onRedirectReceived()`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest.Callback#onRedirectReceived(org.chromium.net.UrlRequest,%20org.chromium.net.UrlResponseInfo,%20java.lang.String)) method. In this method, you can take one of the following client actions:\n - Follow the redirect using [`followRedirect()`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest#followRedirect()). This method takes the request back to the **Started** state.\n - Cancel the request using [`cancel()`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest#cancel()). This method takes the request to the [`onCanceled()`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest.Callback#onCanceled(org.chromium.net.UrlRequest,%20org.chromium.net.UrlResponseInfo)) method where the app can perform additional operations before the request is moved to the **Canceled** final state.\n3. After the app follows all the redirects, the server sends the response headers and the [`onResponseStarted()`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest.Callback#onResponseStarted(org.chromium.net.UrlRequest,%20org.chromium.net.UrlResponseInfo)) method is called. The request is in the **Waiting for read()** state. The app should call the [`read()`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest#read(java.nio.ByteBuffer)) method to attempt to read part of the response body. After `read()` is called, the request is in the **Reading** state, where there are the following possible outcomes:\n - The reading action was successful, but there is more data available. The [`onReadCompleted()`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest.Callback#onReadCompleted(org.chromium.net.UrlRequest,%20org.chromium.net.UrlResponseInfo,%20java.nio.ByteBuffer)) is called and the request is in the **Waiting for read()** state again. The app should call the [`read()`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest#read(java.nio.ByteBuffer)) method again to continue reading the response body. The app could also stop reading the request by using the [`cancel()`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest#cancel()) method .\n - The reading action was successful, and there is no more data available. The [`onSucceeded()`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest.Callback#onSucceeded(org.chromium.net.UrlRequest,%20org.chromium.net.UrlResponseInfo)) method is called and the request is now in the **Succeeded** final state.\n - The reading action failed. The [`onFailed`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest.Callback#onFailed(org.chromium.net.UrlRequest,%20org.chromium.net.UrlResponseInfo,%20org.chromium.net.CronetException)) method is called and the final state of the request is now **Failed**.\n\nThe following diagram shows the lifecycle of a\n[`UrlRequest`](/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest) object:\n\n\u003cbr /\u003e\n\n\nThe Cronet request lifecycle\n\n| Legend | |\n|----------------------|------------------|\n| initial state | final state |\n| transitional state | callback methods |\n| `UrlRequest` methods | |"]]