Sobes.tech
Junior — Middle

Konfiqurasiyanı dəyişərkən sistemin hazırkı vəziyyətinin qorunmasını necə təmin etmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Android-də, konfiqurasiya dəyişdikdə (məsələn, ekranın döndürülməsi) sistemin cari vəziyyətini saxlamaq üçün Activity və ya Fragment-in vəziyyətinin saxlanması mexanizmi istifadə olunur.

Əsas üsullar:

  1. onSaveInstanceState(Bundle outState) — lazım olan məlumatları Bundle obyektində saxlamaq üçün metod. Bu məlumatlar Activity yenidən yaradıldıqda onCreate və ya onRestoreInstanceState metodlarında əlçatan olacaq.

  2. ViewModel — Android-ın arxitektura komponentlərindən olan bu komponent, konfiqurasiya dəyişiklikləri zamanı məlumatları saxlayır və Activity ilə birlikdə yenidən yaradılmır.

  3. UI komponentlərinin vəziyyətini saxlamaq — çox sayda standart vidjet öz vəziyyətini avtomatik olaraq saxlayır, əgər onlara unikal identifikator təyin olunubsa.

Misal: sayğacın vəziyyətini saxlamaq:

class MainActivity : AppCompatActivity() {
    private var counter = 0

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        counter = savedInstanceState?.getInt("counter_key") ?: 0
        // UI-ni cari counter dəyəri ilə yeniləyin
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        outState.putInt("counter_key", counter)
    }
}

Beləliklə, konfiqurasiya dəyişiklikləri zamanı məlumatlar itmir və istifadəçi eyni interfeys və vəziyyəti görür.