Cykl życia żądania Cronet

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:

  1. Cykl życia znajduje się w stanie Rozpoczęty, gdy aplikacja wywołuje metodę start().
  2. 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.
  3. 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:

Schemat cyklu życia żądania Cronet
Cykl życia żądania Cronet

Legenda
Ikona legendy stanu początkowego Cronet stan początkowy Ikona legendy stanu końcowego Cronet stan końcowy
Ikona legendy stanu przejściowego Cronet stan przejściowy Ikona legendy metod wywołania zwrotnego Cronet metody wywołania zwrotnego
Ikona legendy działania klienta Cronet UrlRequest metody