Cykl życia aktywności
159
jesteś tutaj
app/src/main
Stopwatch
Activity.java
Stoper
java
com.hfad.stoper
app/src/main
Stopwatch
Activity.java
Stoper
java
com.hfad.stoper
Implementacja metod onPause() oraz onResume()
Zaczniemy od implementacji obsługi wznawiania oraz uruchamiania aktywności.
Kiedy działanie aktywności jest wznawiane, wywoływana jest metoda cyklu życia
onResume()
.
Kiedy aktywność jest uruchamiana, metoda
onResume()
jest wywoływana po wcześniejszym
wywołaniu metody
onStart()
. Metoda
onResume()
jest zatem wywoływana niezależnie od
tego, czy aktywność jest uruchamiana, czy wznawiana; a to oznacza, że jeśli kod umieszczony
wcześniej w metodzie
onStart()
przeniesiemy do metody
onResume()
, aplikacja będzie
zachowywać się identycznie niezależnie od tego, czy aktywność jest uruchamiana po raz
pierwszy, czy jej działanie jest wznawiane. Innymi słowy, możemy usunąć metodę
onStart()
i zastąpić ją metodą
onResume()
, jak pokazaliśmy w poniższym przykładzie:
@Override
protected void onStop() {
super.onStop();
wasRunning = running;
running = false;
}
@Override
protected void onPause() {
super.onPause();
wasRunning = running;
running = false;
}
W podobny sposób możemy poradzić sobie z obsługą wstrzymywania i zatrzymywania aktywności.
Kiedy działanie aktywności jest wstrzymywane, wywoływana jest metoda cyklu życia
onPause()
.
W przypadku zatrzymywania aktywności wywoływana jest najpierw metoda
onPause()
,
a następnie
onStop()
. Metoda
onPause()
jest wywoływana niezależnie od tego, czy aktywność
jest wstrzymywana, czy zatrzymywana; a to oznacza, że kod umieszczony wcześniej w metodzie
onStop()
możemy przenieść do
onPause()
:
@Override
protected void onStart() {
super.onStart();
if (wasRunning) {
running = true;
}
}
@Override
protected void onResume() {
super.onResume();
if (wasRunning) {
running = true;
}
}
Aktywność
działająca
onStart()
onStop()
onResume()
onPause()
Usuń metodę
onStart().
Usuń metodę
onStop().
I dodaj metodę
onResume().
Dodaj metodę
onPause().
Metoda onResume() jest
wywoływana, kiedy aktywność
jest uruchamiana lub gdy jej
działanie zostaje wznowione.
Ponieważ chcemy, by nasza
aplikacja robiła dokładnie to
samo niezależnie od tego,
czy jest uruchamiana,
czy wznawiana, wystarczy,
że zaimplementujemy
jedynie metodę onResume().
Metoda onPasue()
jest wywoływana,
kiedy aktywność jest
wstrzymywana, jak
również gdy jest
zatrzymywana. Oznacza
to, że wystarczy, byśmy
zaimplementowali jedynie
metodę onPause().
Get Android Programowanie aplikacji. Rusz głową! Wydanie II now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.