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.
UrlRequestmetod- W zależności od stanu klienci mogą wywoływać określone metody w obiektach
UrlRequest. Metody przenoszą żądanie z jednego stanu do innego. Callbackmetod- Dzięki wdrożeniu metod klasy
UrlRequest.CallbackTwoja 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:
Cykl życia żądania Cronet
| Legenda | |
|---|---|
UrlRequest metody |