Sobes.tech
Junior — Middle

Hoe het huidige systeemstatus behouden tijdens het wijzigen van de configuratie?

sobes.tech AI

Antwoord van AI

In Android wordt de huidige systeemstatus opgeslagen bij een configuratiewijziging (bijvoorbeeld schermrotatie) door middel van het opslaan van de toestand van Activity of Fragment.

Belangrijkste methoden:

  1. onSaveInstanceState(Bundle outState) — methode waarin je de benodigde gegevens kunt opslaan in een Bundle-object. Deze gegevens zijn beschikbaar bij het opnieuw creëren van de Activity in onCreate of onRestoreInstanceState.

  2. ViewModel — een component uit de architectuurcomponenten van Android, die gegevens bewaart bij een configuratiewijziging en niet samen met de Activity wordt hercreëerd.

  3. Opslaan van de toestand van UI-componenten — veel standaardwidgets slaan hun toestand automatisch op als ze een unieke identificatie hebben.

Voorbeeld van het opslaan van de toestand van een teller:

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 bijwerken met de huidige waarde van counter
    }

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

Op deze manier gaan gegevens niet verloren bij een configuratiewijziging en ziet de gebruiker dezelfde interface en toestand.