Android-də Activity-nin həyat dövrü haqqında nə deyə bilərsiniz?
sobes.tech Süni İntellekt
AI-dan cavab
Activity-nin həyat dövrü, hər bir Activity nümunəsinin yaradılmasından məhv edilməsinə qədər keçdiyi vəziyyətlər və onların arasında keçidlər toplusudur. Bu, callback metodlarının toplusu ilə müəyyən edilir.
Həyat dövrünün əsas callback metodları:
onCreate():Activityilk dəfə yaradıldıqda çağırılır. Burada istifadəçi interfeysinin başlanması, məlumatların bağlanması və digər bir dəfəlik əməliyyatlar həyata keçirilir.onStart():Activityistifadəçiyə görünəndə, amma hələ fokus almamışsa çağırılır.onResume():Activityfokus alıb aktivləşəndə çağırılır. Burada adətən animasiyalar və digər interaktiv əməliyyatlar başlanır.onPause():Activityfokus itirəndə, amma hələ görünəndə (məsələn, yuxarıda yarı şəffaf dialoq pəncərəsi varsa) çağırılır. Burada resurs tələb edən əməliyyatlar dayandırılmalıdır.onStop():Activityistifadəçiyə artıq görünməz olduqda çağırılır. Burada qeydə alınmamış məlumatlar saxlanılır və artıq lazım olmayan resurslar azad edilir.onDestroy():Activityməhv ediləndən əvvəl çağırılır. Burada bütün qalan resurslar azad edilir.onRestart():onStop()-dan sonra,Activityyenidən göstəriləndə çağırılır. Bu,onStart()-a keçid edir.
Qrafik olaraq, həyat dövrü belə təsvir edilə bilər:
Created -> Started -> Resumed -> Paused -> Stopped -> Destroyed
Həmçinin keçidlər mövcuddur:
- Created -> Started (
onStart()-dan sonra) - Started -> Resumed (
onResume()-dan sonra) - Resumed -> Paused (fokus itirəndə)
- Paused -> Resumed (fokus geri alındıqda)
- Paused -> Stopped (tamamilə gizlənəndə)
- Stopped -> Destroyed (aktivlik bitəndə)
- Stopped -> Restarted -> Started (
onRestart()-dan sonra)
Bu callback metodlarda Activity-nin vəziyyətini düzgün idarə etmək vacibdir ki, yaddaş sızıntıları qarşısı alınsın və tətbiqin düzgün davranışı təmin olunsun. Vəziyyətin saxlanması üçün onSaveInstanceState() istifadə olunur ( onStop()-dan əvvəl), və bərpa onCreate() və ya onRestoreInstanceState()-də həyata keçirilir ( onStart()-dan sonra).
onSaveInstanceState()-in istifadəsinə nümunə:
// Vəziyyətin saxlanması
override fun onSaveInstanceState(outState: Bundle) {
outState.putString("my_data", "some_value")
super.onSaveInstanceState(outState)
}
// Vəziyyətin bərpası
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
if (savedInstanceState != null) {
val myData = savedInstanceState.getString("my_data")
// myData-dan istifadə edin
}
}