Sobes.tech
Junior

Android'da Activity ning hayot sikli haqida nima deyish mumkin?

sobes.tech AI

AIdan javob

Activity ning hayot sikli — bu har bir Activity nusxasi yaratishdan boshlab yoq qilishgacha bolgan holatlar va ulardagi o'tishlar to'plamidir. Bu callback metodlar to'plami bilan belgilangan.

Hayot siklining asosiy callback metodlari:

  • onCreate(): Birinchi marta Activity yaratilganda chaqiriladi. Bu yerda UI ni boshlash, ma'lumotlarni bog'lash va boshqa bir martalik harakatlar amalga oshiriladi.
  • onStart(): Activity foydalanuvchi uchun ko'rinadigan bo'lsa, lekin hali fokus olmagan bo'lsa chaqiriladi.
  • onResume(): Activity fokus olganda va faol bo'lsa chaqiriladi. Bu yerda odatda animatsiyalar va boshqa interaktiv harakatlar boshlanadi.
  • onPause(): Activity fokusni yo'qotganda, lekin hali ko'rinadigan bo'lsa chaqiriladi (masalan, ustida yarim shaffof dialog oynasi bo'lsa). Bu yerda resurslarni ko'p ishlatadigan operatsiyalarni to'xtatish kerak.
  • onStop(): Activity foydalanuvchi uchun ko'rinmay qolganida chaqiriladi. Bu yerda saqlanmagan ma'lumotlar saqlanadi va kerak bo'lmagan resurslar bo'shatiladi.
  • onDestroy(): Activity yo'q qilinishidan oldin chaqiriladi. Bu yerda qolgan barcha resurslar bo'shatiladi.
  • onRestart(): onStop() dan so'ng, Activity yana ko'rsatilganda chaqiriladi. Bu onStart() ga olib boradi.

Grafik tarzda, hayot sikli quyidagicha tasvirlanishi mumkin:

Created -> Started -> Resumed -> Paused -> Stopped -> Destroyed

Shuningdek, o'tishlar ham mavjud:

  • Created -> Started (onStart() dan keyin)
  • Started -> Resumed (onResume() dan keyin)
  • Resumed -> Paused (fokus yo'qotilganda)
  • Paused -> Resumed (fokus qayta olganda)
  • Paused -> Stopped (to'liq yashirilganda)
  • Stopped -> Destroyed (faoliyat tugatilganda)
  • Stopped -> Restarted -> Started (onRestart() dan keyin)

Ushbu callback metodlarda Activity holatini to'g'ri boshqarish muhim, chunki bu xotira oqib ketishlarini oldini oladi va ilovaning to'g'ri ishlashini ta'minlaydi. Holatni saqlash uchun onSaveInstanceState() ishlatiladi (onStop()dan oldin), va tiklash onCreate() yoki onRestoreInstanceState() da amalga oshiriladi (onStart()dan keyin).

onSaveInstanceState() dan foydalanish misoli:

// Holatni saqlash
override fun onSaveInstanceState(outState: Bundle) {
    outState.putString("my_data", "some_value")
    super.onSaveInstanceState(outState)
}

// Holatni tiklash
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    // ...
    if (savedInstanceState != null) {
        val myData = savedInstanceState.getString("my_data")
        // myData dan foydalanish
    }
}