Sobes.tech
Junior

Kokius veiklos ciklo metodus žinote ir kaip jie vykdomi?

sobes.tech AI

Atsakymas iš AI

  • onCreate(): Iškviečiama pirmą kartą sukuriant Activity. Naudojama UI ir duomenų inicializacijai.
  • onStart(): Activity tampa matoma vartotojui.
  • onResume(): Activity tampa aktyvi ir yra priekyje. Vartotojas gali su ja sąveikauti.
  • onPause(): Iškviečiama, kai Activity pereina į foną arba kita Activity ją dalinai uždengia. Naudojama būsenos išsaugojimui, kurią reikia greitai atkurti.
  • onStop(): Activity nebėra matoma vartotojui. Naudojama išteklių išlaisvinimui.
  • onDestroy(): Iškviečiama prieš Activity sunaikinimą. Naudojama išteklių galutiniam valymui.
  • onRestart(): Po onStop(), kai Activity vėl tampa matoma.

Vykdymo sekos metodai paleidžiant: onCreate() -> onStart() -> onResume().

Sekos metodai pereinant į foną (pavyzdžiui, paspaudus Home mygtuką): onPause() -> onStop().

Sekos metodai grįžtant iš fono: onRestart() -> onStart() -> onResume().

Sekos metodai sunaikinant Activity: onPause() -> onStop() -> onDestroy().

Pakeitus ekraną, Activity sunaikinama ir kuriama iš naujo. Sekos: onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume(). Būsenos išsaugojimui naudojama onSaveInstanceState() (kviečiama prieš onStop()) ir atkūrimas onCreate() arba onRestoreInstanceState() (kviečiama po onStart()).

class MyActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main) // UI inicializacija
        // Būsenos atkūrimas iš savedInstanceState
    }

    override fun onStart() {
        super.onStart()
        // Activity tampa matoma
    }

    override fun onResume() {
        super.onResume()
        // Activity yra priekyje, pasiekiama sąveikai
    }

    override fun onPause() {
        super.onPause()
        // Activity pereina į foną
        // Greitai atkuriamo būsenos išsaugojimas
    }

    override fun onStop() {
        super.onStop()
        // Activity nematoma
        // Išteklių išlaisvinimas
    }

    override fun onDestroy() {
        super.onDestroy()
        // Activity sunaikinama
        // Galutinis išteklių valymas
    }

    override fun onRestart() {
        super.onRestart()
        // Activity grįžta iš fono
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        // Būsenos išsaugojimas prieš sunaikinimą
    }

    override fun onRestoreInstanceState(savedInstanceState: Bundle) {
        super.onRestoreInstanceState(savedInstanceState)
        // Būsenos atkūrimas
    }
}