Sobes.tech
Junior — Middle

Yapılandırma değiştirildiğinde sistemin mevcut durumunun nasıl korunacağı?

sobes.tech yapay zeka

AI'dan gelen yanıt

Android'de, yapılandırma değiştirildiğinde (örneğin ekranın döndürülmesi) sistemin mevcut durumunu kaydetmek için Activity veya Fragment'in durumunu kaydetme mekanizması kullanılır.

Ana yöntemler:

  1. onSaveInstanceState(Bundle outState) — gerekli verileri bir Bundle nesnesine kaydedebileceğiniz yöntem. Bu veriler, onCreate veya onRestoreInstanceState yöntemlerinde Activity yeniden oluşturulurken erişilebilir olacaktır.

  2. ViewModel — Android'in mimari bileşenlerinden olan bu bileşen, yapılandırma değişiklikleri sırasında verileri korur ve Activity ile birlikte yeniden oluşturulmaz.

  3. UI bileşenlerinin durumunu kaydetme — birçok standart widget, benzersiz bir kimlik atanmışsa kendi durumunu otomatik olarak kaydeder.

Örnek: sayacın durumunu kaydetme:

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'yi güncelleme: counter değeri ile
    }

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

Bu şekilde, yapılandırma değişikliklerinde veriler kaybolmaz ve kullanıcı aynı arayüz ve durumu görür.