Sobes.tech
Junior

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(): Activity ilk 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(): Activity istifadəçiyə görünəndə, amma hələ fokus almamışsa çağırılır.
  • onResume(): Activity fokus alıb aktivləşəndə çağırılır. Burada adətən animasiyalar və digər interaktiv əməliyyatlar başlanır.
  • onPause(): Activity fokus 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(): Activity istifadəç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(): Activity məhv ediləndən əvvəl çağırılır. Burada bütün qalan resurslar azad edilir.
  • onRestart(): onStop()-dan sonra, Activity yenidə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
    }
}