Cykl życia aplikacji.
Wewnętrzny mechanizm działania aplikacji w systemie Android polega na tym, że każdy ekran interfejsu użytkownika jest reprezentowany przez klasą Activity. Każda aktywność posiada własny cykl życia. Aplikacje posiadają co najmniej jedną aktywność i przydzielony proces (środowiska linuksowego, jakim jest Android), w którym ta aktywność jest przechowywana. Co często prowadzi do takiej sytuacji, że gdy proces został zatrzymany, to nie oznacza, że aktywność również (aktywności nie jest powiązana z cyklem życia procesu.
Cykle życia aktywności w Androidzie
Programy uruchamiane na platformie Androida trakcie swego działania mogą znaleźć się w kilku stanach i nie ma na to wpływu osoba pisząca program. Przykładowo w telefonie jest uruchomiona aplikacja przy pomocy której użytkownik wykonuje edycję danych. Do urządzenia użytkownika przychodzi połączenie telefoniczne. System automatycznie przesunie aplikację edytującą dane w tło (zdarzenie onPause) i uaktywni aplikacją odbierającą połączenie telefoniczne. Jeżeli chcemy, aby w takiej sytuacji aplikacja zachowała stan edycji, to pisząc program należy obsłużyć zdarzenie onPause()- nadpisać własną metodę dla tego zdarzenia.
Diagram cyklu życia aktywności
Metody wewnątrz klasy Activity, które można przesłonić własnym kodem to
- onCreate()- zostaje wywołana podczas pierwszego uruchomienia aplikacji, najczęściej w tej metodzie inicjuje się interfejs użytkownika
- onStart()- metoda uruchamiana w momencie wyświetlenia użytkownikowi
- onResume()- metoda wywołana w momencie gdy aktywność jest gotowa do interakcji z użytkownikiem
- onPause()- metoda uruchamiana w momencie przesunięcia aplikacji w tło przez system
- onStop()- metoda wywołana przez system w momencie, gdy aktywność staje się niewidoczna przez użytkownika i nie jest na razie potrzebna. Uwaga. Gdy urządzenie ma zbyt mało wolnej pamięci, to metoda onStop() może nie zostać wywołana- system zakończy proces.
- onRestart()- metoda wywoływana jest w momencie zakończenia stanu zatrzymania
- onDestroy()- metoda wywoływana jest tuż przed zakończeniem działania aktywności
- onSaveInstanceState()- metoda wywołana przez system w celu zachowania stanu instancji aktywności, na przykład bieżąca pozycja kursora w polu tekstowym
- onRestoreInstanceState()- metoda wywołana w momencie przywrócenia aktywności do stanu zapisanego przez metodę onSaveInstanceState()