Sobes.tech
Junior — Middle

Kā nodrošināt pašreizējā sistēmas stāvokļa saglabāšanu konfigurācijas maiņas laikā?

sobes.tech AI

Atbilde no AI

Android platformā, konfigurācijas izmaiņu laikā (piemēram, ekrāna apgriešanas gadījumā) tiek izmantots aktivitātes vai fragmenta stāvokļa saglabāšanas mehānisms.

Galvenie veidi:

  1. onSaveInstanceState(Bundle outState) — metode, kurā var saglabāt nepieciešamos datus Bundle objektā. Šie dati būs pieejami aktivitātes atkārtotai izveidei onCreate vai onRestoreInstanceState metodēs.

  2. ViewModel — no Android arhitektūras komponentiem, kas saglabā datus konfigurācijas izmaiņu laikā un netiek atkārtoti izveidots kopā ar aktivitāti.

  3. UI komponentu stāvokļa saglabāšana — daudzi standarta widgeti automātiski saglabā savu stāvokli, ja tiem ir unikāls identifikators.

Piemērs: skaitītāja stāvokļa saglabāšana:

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
        // atjaunot UI ar pašreizējo counter vērtību
    }

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

Tādējādi, konfigurācijas izmaiņu laikā dati netiks zaudēti, un lietotājs redzēs to pašu interfeisu un stāvokli.