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 obiektuUrlRequest
, 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 metodyonCanceled()
, w której aplikacja może wykonać dodatkowe operacje, zanim żądanie zostanie przeniesione do stanu końcowego Anulowane.
- Skorzystaj z przekierowania, używając
- 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łaniuread()
żą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 metodycancel()
. - 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.
- Odczytanie zostało wykonane, ale dostępnych jest więcej danych.
Ten diagram przedstawia cykl życia obiektu UrlRequest
:
Legenda | |
---|---|
stan początkowy | stan końcowy |
stan przejściowy | metody wywołania zwrotnego |
UrlRequest metody |