Sobes.tech
Junior

რომელი მეთოდები გაქვთ Activity-ის ციკლის ცხოვრებაში და როგორ ხორციელდება ისინი?

sobes.tech AI

პასუხი AI-სგან

  • onCreate(): აქტივობის პირველი შექმნისას გამოიძახება. გამოიყენება UI და მონაცემების ინიციალიზაციისთვის.
  • onStart(): აქტივობა ხდება ხილული მომხმარებლისთვის.
  • onResume(): აქტივობა ხდება აქტიური და მდებარეობს წინამხარის ფლანგზე. მომხმარებელი შეუძლია მასთან ურთიერთქმედება.
  • onPause(): გამოიძახება, როდესაც აქტივობა გადადის უკანა ფლანგზე ან სხვა აქტივობა ნაწილობრივ მას აფარებს თავს. გამოიყენება მდგომარეობის შენახვისთვის, რომელიც სწრაფად შეიძლება აღდგეს.
  • onStop(): აქტივობა აღარ ჩანს მომხმარებლისთვის. გამოიყენება არასაჭირო რესურსების გათავისუფლებისთვის.
  • onDestroy(): გამოიძახება, როდესაც აქტივობა განადგურდება. გამოიყენება რესურსების საბოლოო გასუფთავებისთვის.
  • onRestart(): გამოიძახება onStop()-ის შემდეგ, როდესაც აქტივობა კვლავ ხილული ხდება.

შესრულების სერიის მეთოდების: onCreate() -> onStart() -> onResume().

პირდაპირი სერიის მეთოდების შესრულება, როდესაც გადადის უკანა ფლანგზე (მაგალითად, ღილაკის Home დაჭერით): onPause() -> onStop().

ფონიდან დაბრუნებისას: onRestart() -> onStart() -> onResume().

აქტივობის განადგურებისას: onPause() -> onStop() -> onDestroy().

ეკრანის ბრუნვისას, აქტივობა განადგურდება და თავიდან იქმნება. სერია: onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume(). მდგომარეობის შენახვა გამოიყენება onSaveInstanceState() (სწრაფად ზემოთ onStop()) და აღდგენა onCreate() ან onRestoreInstanceState()-ში (შემდეგ onStart()).

class MyActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main) // UI ინიციალიზაცია
        // მდგომარეობის აღდგენა savedInstanceState-დან
    }

    override fun onStart() {
        super.onStart()
        // აქტივობა ხდება ხილული
    }

    override fun onResume() {
        super.onResume()
        // აქტივობა წინამხარის ფლანგზეა, ხელმისაწვდომია ურთიერთქმედებისთვის
    }

    override fun onPause() {
        super.onPause()
        // აქტივობა გადადის უკანა ფლანგზე
        // სწრაფად აღდგენის მდგომარეობის შენახვა
    }

    override fun onStop() {
        super.onStop()
        // აქტივობა აღარ ჩანს
        // რესურსების გათავისუფლება
    }

    override fun onDestroy() {
        super.onDestroy()
        // აქტივობა განადგურდება
        // საბოლოო რესურსების გასუფთავება
    }

    override fun onRestart() {
        super.onRestart()
        // აქტივობა უკან ბრუნდება
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        // მდგომარეობის შენახვა განადგურებამდე
    }

    override fun onRestoreInstanceState(savedInstanceState: Bundle) {
        super.onRestoreInstanceState(savedInstanceState)
        // მდგომარეობის აღდგენა
    }
}