Aktywności i cykl życia
Proszę poznać pojęcie Activity, cykl życia Activity i jego callbacki (onCreate, onStart, onResume, onPause, onStop, onDestroy), a także używać ViewBinding.
Aktywności i cykl życia to bezpłatna lekcja Android Academy na CoddyKit. To lekcja 2 z 7. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Android Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Android Academy zawiera 7 lekcji w sumie.
Czym jest aktywność?
Aktywność to pojedynczy ekran aplikacji Android.
- Każdy ekran (logowania, główny, ustawień) jest aktywnością
- Zarządza układem (XML) i interakcjami użytkownika
- Jest zadeklarowana w pliku AndroidManifest.xml
Można myśleć o niej jak o odpowiedniku strony internetowej w systemie Android — każda strona jest aktywnością.
Cykl życia aktywności
Aktywność przechodzi przez szereg stanów cyklu życia, gdy użytkownik porusza się po aplikacji:
- Utworzona → Uruchomiona → Wznowiona (widoczna i aktywna)
- Wstrzymana (częściowo ukryta)
- Zatrzymana (całkowicie ukryta)
- Zniszczona (aktywność przestaje istnieć)
Można przesłaniać metody cyklu życia, aby reagować na te przejścia.
Wywołania zwrotne cyklu życia
Sześć głównych wywołań zwrotnych cyklu życia:
onCreate()— aktywność jest tworzona. Tutaj należy skonfigurować układ.onStart()— aktywność staje się widoczna.onResume()— aktywność znajduje się na pierwszym planie i użytkownik może z niej korzystać.onPause()— użytkownik opuszcza ekran. Należy zapisać dane tymczasowe.onStop()— aktywność nie jest już widoczna.onDestroy()— aktywność jest niszczona.
Przykład MainActivity
Minimalna aktywność z rejestrowaniem cyklu życia:
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private val TAG = "MainActivity"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Log.d(TAG, "onCreate")
}
override fun onResume() {
super.onResume()
Log.d(TAG, "onResume — user is here")
}
override fun onPause() {
super.onPause()
Log.d(TAG, "onPause — saving state")
}
override fun onDestroy() {
super.onDestroy()
Log.d(TAG, "onDestroy")
}
}Dlaczego cykl życia ma znaczenie
Częste błędy wynikające z ignorowania cyklu życia:
- Odtwarzanie filmu w
onResume, ale zapominanie o wstrzymaniu go wonPause— rozładowuje baterię - Rejestrowanie nasłuchiwacza czujnika w
onCreate, ale brak jego wyrejestrowania wonDestroy— wyciek pamięci - Brak zapisu danych formularza w
onPause— użytkownik traci postęp podczas rozmowy telefonicznej
Zapisywanie stanu: onSaveInstanceState
Po obróceniu telefonu aktywność jest niszczona i tworzona ponownie. Stan interfejsu użytkownika zostaje utracony.
Stan tymczasowy należy zapisać w onSaveInstanceState(bundle) i przywrócić w onCreate(savedInstanceState).
Zapisywanie i przywracanie stanu
Przechowuj dane podczas zmian konfiguracji:
class CounterActivity : AppCompatActivity() {
private var count = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_counter)
// Restore saved state after rotation
count = savedInstanceState?.getInt("count") ?: 0
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putInt("count", count)
}
}Stos wsteczny
Android zarządza stosem wstecznym aktywności:
- Uruchomienie nowej aktywności umieszcza ją na stosie
- Naciśnięcie przycisku Wstecz usuwa aktywność ze szczytu stosu i ją niszczy
- Poprzednia aktywność jest automatycznie wznawiana
Dlatego nie należy ręcznie wywoływać finish(), chyba że chce się konkretnie usunąć bieżący ekran ze stosu wstecznego.
Zmiany konfiguracji
Każda zmiana konfiguracji (obrót, zmiana języka, podłączenie klawiatury) domyślnie powoduje ponowne utworzenie aktywności.
Współczesnym rozwiązaniem jest użycie ViewModel — zachowuje się on podczas zmian konfiguracji i bezpiecznie przechowuje dane. ViewModel zostanie omówiony w module dotyczącym architektury.
Szybki test
W której metodzie cyklu życia należy skonfigurować układ (wywołać setContentView)?
Podsumowanie: aktywności i cykl życia
Zna już Pan/Pani aktywności Androida:
- Aktywność = jeden ekran aplikacji
- Cykl życia: onCreate → onStart → onResume → onPause → onStop → onDestroy
- Stan tymczasowy należy zapisywać w
onSaveInstanceState - Obrót niszczy aktywność i tworzy ją ponownie
- Android automatycznie zarządza stosem wstecznym
Następnie: projektowanie ekranów za pomocą układów i widoków.
Często zadawane pytania
Czy lekcja „Aktywności i cykl życia” jest bezpłatna?
Tak — pełny tekst „Aktywności i cykl życia” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Android Academy, przejdź na CoddyKit PRO. Kurs Android Academy zawiera 7 lekcji w sumie.
Co nauczysz się w „Aktywności i cykl życia”?
Proszę poznać pojęcie Activity, cykl życia Activity i jego callbacki (onCreate, onStart, onResume, onPause, onStop, onDestroy), a także używać ViewBinding. Ćwiczysz Android Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Android Academy?
Nie wymagamy żadnego doświadczenia. Android Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 7.
Ile czasu zajmuje lekcja „Aktywności i cykl życia”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Android Academy?
Tak. Każda lekcja Android Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Struktura projektu i manifest
- Aktywności i cykl życia
- Układy i widoki
- Obsługa danych wprowadzanych przez użytkownika
- Intencje i nawigacja
- Fragmenty
- Uprawnienia i żądania w czasie działania