Załóżmy, że masz dwie aktywności A i B. Nawigujesz z A do B. Akcja A przechodzi do tła, tzn. Działanie A jest wstrzymane. Aktywność B skupia się na pierwszym planie. Po kliknięciu przycisku Wstecz aktywność B jest wyskakiwana z tylnego stosu, a aktywność A skupia się, tzn. Aktywność A wznawia się.
Po wyświetleniu okna dialogowego w działaniu, działanie w stanie wstrzymanym i okno dialogowe jest wyświetlane po kliknięciu przycisku Wstecz, okno dialogowe jest odrzucane, a działanie jest wznawiane (na pierwszym planie).
Gdy aktywność nie jest już uruchomiona, jest w tle, dlatego jest wstrzymana. Zgadzam się z Raghavem Soodem na to, co dzieje się, gdy aplikacja się zawiesza.
zwykle należy używać OnPause() wywołania zwrotnego:
animacji zatrzymać lub innych bieżących działań, które mogłyby zużywają CPU. Zatwierdzam niezapisane zmiany, ale tylko wtedy, gdy użytkownicy oczekują, że zmiany te zostaną trwale zapisane po ich opuszczeniu (na przykład w wersji roboczej e-maila). Zwolnij zasoby systemowe, takie jak odbiorniki rozgłoszeniowe, uchwyty do czujników (np. GPS) lub wszelkie zasoby, które mogą wpływać na żywotność baterii, gdy aktywność użytkownika jest wstrzymana, a użytkownik ich nie potrzebuje.
Uwaga:
Wiele zadań może odbywać się w tle na raz. Jeśli jednak użytkownik wykonuje jednocześnie wiele zadań w tle, system może rozpocząć niszczenie działań w tle w celu odzyskania pamięci, co spowoduje utratę stanów aktywności.
co się dzieje, gdy pamięć jest niska i system musi odzyskać pamięć na bieżące działające operacje w takim przypadku wstrzymane działania zostaną zniszczone (w zależności od priorytetu)? – Raghunandan