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:
-
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.
-
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.
-
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.