Cronet-Anfragelebenszyklus
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Hier erfahren Sie mehr über den Lebenszyklus von Anfragen, die mit Cronet erstellt wurden, und wie Sie diese mit den von der Bibliothek bereitgestellten Callback-Methoden verwalten.
Lebenszyklusübersicht
Netzwerkanfragen, die mit der Cronet-Bibliothek erstellt wurden, werden durch die Klasse UrlRequest
dargestellt.
Die folgenden Konzepte sind wichtig für das Verständnis des UrlRequest
-Lebenszyklus:
- Bundesländer
- Ein Status ist die bestimmte Bedingung, in der sich die Anfrage zu einem bestimmten Zeitpunkt befindet.
UrlRequest-Objekte, die mit der Cronet-Bibliothek erstellt wurden, durchlaufen in ihrem Lebenszyklus verschiedene Status. Der Lebenszyklus einer Anfrage umfasst einen Anfangszustand sowie mehrere Übergangs- und Endzustände.
UrlRequest
Methoden
- Clients können je nach Status bestimmte Methoden für
UrlRequest
-Objekte aufrufen. Die Methoden verschieben die Anfrage von einem Status in einen anderen.
Callback
Methoden
- Durch Implementierung von Methoden der Klasse
UrlRequest.Callback
kann Ihre Anwendung Updates zum Fortschritt der Anfrage erhalten. Sie können die Callback-Methoden implementieren, um Methoden des UrlRequest
-Objekts aufzurufen, die den Lebenszyklus von einem Zustand in einen anderen durchlaufen.
In der folgenden Liste wird der Ablauf des UrlRequest
-Lebenszyklus beschrieben:
- Nachdem Ihre Anwendung die Methode
start()
aufgerufen hat, befindet sich der Lebenszyklus im Status Gestartet.
- Der Server könnte eine Weiterleitungsantwort senden, die den Datenfluss zur Methode
onRedirectReceived()
weiterleitet. Bei dieser Methode können Sie eine der folgenden Clientaktionen ausführen:
- Folgen Sie der Weiterleitung mit
followRedirect()
.
Bei dieser Methode wird die Anfrage in den Status Gestartet zurückgesetzt.
- Brechen Sie die Anfrage mit
cancel()
ab.
Bei dieser Methode wird die Anfrage an die Methode onCanceled()
weitergeleitet. Dort kann die Anwendung weitere Vorgänge ausführen, bevor die Anfrage in den endgültigen Status Canceled (Abgebrochen) verschoben wird.
- Nachdem die Anwendung allen Weiterleitungen folgt, sendet der Server die Antwortheader und die Methode
onResponseStarted()
wird aufgerufen. Die Anfrage befindet sich im Status Warten auf read(). Die App sollte die Methode read()
aufrufen, um zu versuchen, einen Teil des Antworttexts zu lesen. Nachdem read()
aufgerufen wurde, befindet sich die Anfrage im Status Lesen mit folgenden möglichen Ergebnissen:
- Die Leseaktion war erfolgreich, es sind jedoch mehr Daten verfügbar. Das
onReadCompleted()
wird aufgerufen und die Anfrage befindet sich wieder im Status Warten auf read().
Die App sollte die Methode read()
noch einmal aufrufen, um den Antworttext weiter zu lesen. Die App könnte das Lesen der Anfrage auch beenden, indem sie die Methode cancel()
verwendet .
- Die Leseaktion war erfolgreich und es sind keine weiteren Daten verfügbar.
Die Methode
onSucceeded()
wird aufgerufen und die Anfrage befindet sich jetzt im Endstatus Erfolgreich.
- Die Leseaktion ist fehlgeschlagen. Die Methode
onFailed
wird aufgerufen und der endgültige Status der Anfrage lautet jetzt Fehlgeschlagen.
Das folgende Diagramm zeigt den Lebenszyklus eines UrlRequest
-Objekts:

Lebenszyklus von Cronet-Anfragen
Legende |
|
Anfangszustand von  |
– endgültiger Zustand |
Übergangsstatus |
Callback-Methoden |
UrlRequest -Methoden |
|
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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 | |"]]