Bevara aktivitetsstatus i Android med Save Instance State

Java

Förstå aktivitet Statsbevarande

Att spara en aktivitets tillstånd i Android kan vara något förbryllande, särskilt för utvecklare som är nya på Android SDK-plattformen. Exemplet här visar en enkel applikation som välkomnar användare på olika sätt beroende på om det är första gången de öppnar appen eller om de kommer tillbaka.

Den aktuella implementeringen visar dock alltid den första hälsningen, oavsett navigering bort från appen. Den här artikeln guidar dig genom de nödvändiga stegen för att korrekt spara och återställa en aktivitets tillstånd med metoden `onSaveInstanceState`.

Kommando Beskrivning
onSaveInstanceState(Bundle outState) Denna metod anropas innan en aktivitet förstörs för att spara tillståndet för UI-komponenterna.
putString(String key, String value) Sparar ett strängvärde i paketet med en specificerad nyckel för senare hämtning.
getString(String key) Hämtar ett strängvärde från paketet med den angivna nyckeln.
onRestoreInstanceState(Bundle savedInstanceState) Denna metod anropas efter onStart() för att återställa UI-tillståndet från det tidigare sparade paketet.
setContentView(View view) Ställer in aktivitetsinnehållet till en explicit vy, vilket gör det till roten av layouten.
TextView.setText(String text) Ställer in texten som ska visas av TextView.
super.onCreate(Bundle savedInstanceState) Anropar metoden onCreate() för superklassen och initierar aktiviteten.

Hur man sparar aktivitetstillstånd i Android

I de medföljande skripten utforskar vi hur man sparar en aktivitets tillstånd med hjälp av metod i Android-utveckling. Det första skriptet visar att man skapar en aktivitet som visar ett hälsningsmeddelande, som ändras beroende på om det är första gången användaren öppnar appen eller om de har navigerat iväg och återvänt. Den kritiska delen av skriptet handlar om att spara tillståndet för använda metod. När aktiviteten är på väg att förstöras anropas denna metod för att spara tillståndet för UI-komponenterna. Vi lagrar texten som visas i TextView använda metod, som associerar ett strängvärde med en specificerad nyckel i .

Efter att ha återskapat aktiviteten, metod kontrollerar om det finns ett sparat instansläge. Om det finns, hämtar den tidigare lagrad text med hjälp av metoden och återställer den till . Detta säkerställer att användaren ser samma meddelande som de såg innan han navigerade bort. I det andra skriptet förfinar vi detta tillvägagångssätt ytterligare genom att lägga till onRestoreInstanceState(Bundle savedInstanceState) metod, som kallas efter för att återställa UI-tillståndet från det tidigare sparade . Denna metod ställer in den sparade texten direkt till , vilket säkerställer att användargränssnittets tillstånd är konsekvent och bevaras sömlöst över aktivitetsomstarter.

Implementera statlig sparande i Android-aktiviteter

Java Android utveckling

package com.android.hello;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {
    private TextView mTextView = null;
    private static final String TEXT_VIEW_KEY = "textViewKey";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mTextView = new TextView(this);

        if (savedInstanceState == null) {
            mTextView.setText("Welcome to HelloAndroid!");
        } else {
            mTextView.setText(savedInstanceState.getString(TEXT_VIEW_KEY));
        }
        setContentView(mTextView);
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString(TEXT_VIEW_KEY, mTextView.getText().toString());
    }
}

Säkerställa databeständighet i Android-applikationer

Java Android utveckling

package com.android.hello;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {
    private TextView mTextView = null;
    private static final String TEXT_VIEW_STATE = "textViewState";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mTextView = new TextView(this);

        if (savedInstanceState != null) {
            mTextView.setText(savedInstanceState.getString(TEXT_VIEW_STATE));
        } else {
            mTextView.setText("Welcome to HelloAndroid!");
        }
        setContentView(mTextView);
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString(TEXT_VIEW_STATE, mTextView.getText().toString());
    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        mTextView.setText(savedInstanceState.getString(TEXT_VIEW_STATE));
    }
}

Säkerställa tillståndsbeständighet över konfigurationsändringar

När du utvecklar Android-applikationer är hantering av aktivitetstillstånd under konfigurationsändringar, såsom skärmrotationer, avgörande. Konfigurationsändringar gör att aktiviteter förstörs och återskapas, vilket leder till förlust av tillfälliga UI-tillstånd om de inte hanteras på rätt sätt. Använda metod kan utvecklare spara den nödvändiga UI-tillståndsinformationen. Denna metod anropas innan aktiviteten förstörs, vilket gör att utvecklare kan lagra nyckel-värdepar i en , bevara staten för senare restaurering.

Dessutom är det viktigt att förstå rollen av klass från Androids Architecture Components. är designad för att lagra och hantera UI-relaterad data på ett livscykelmedvetet sätt, vilket gör att data kan överleva konfigurationsändringar. Genom att använda , kan utvecklare koppla bort UI-kontrollanter från data de hanterar, vilket gör applikationen mer robust och enklare att underhålla. Kombinerande ViewModel med ger en heltäckande lösning för att effektivt hantera aktivitetstillstånd.

  1. Vad är syftet med ?
  2. De metod används för att spara det aktuella användargränssnittet för en aktivitet innan den förstörs.
  3. Hur återställer jag aktivitetsläget?
  4. Du kan återställa aktivitetsläget i metod genom att kontrollera savedInstanceState och hämta de lagrade värdena.
  5. Vad är a ?
  6. A är en karta över nyckel-värdepar som används för att skicka data mellan aktiviteter och spara UI-tillståndet.
  7. Vad är rollen för i statlig ledning?
  8. lagrar UI-relaterad data på ett livscykelmedvetet sätt och överlever konfigurationsändringar.
  9. När är kallad?
  10. kallas efter när aktiviteten återinitieras från ett tidigare sparat läge.
  11. Kan jag använda båda och tillsammans?
  12. Ja, kombinera med ger en robust lösning för att hantera UI-tillstånd över konfigurationsändringar.
  13. Vilka är konfigurationsändringar i Android?
  14. Konfigurationsändringar inkluderar skärmrotationer, tangentbordstillgänglighet och språkändringar som gör att aktiviteten återskapas.
  15. Hur gör arbeta i en ?
  16. lagrar ett strängvärde i en med tillhörande nyckel för senare hämtning.

Att effektivt hantera tillståndet för en Android-aktivitet är avgörande för att upprätthålla en smidig användarupplevelse, särskilt under konfigurationsändringar. Genom att utnyttja och metoder kan utvecklare se till att användardata och UI-tillstånd bevaras och återställs sömlöst. Detta tillvägagångssätt förbättrar inte bara appens stabilitet utan förbättrar också användarnas tillfredsställelse genom att tillhandahålla ett konsekvent och pålitligt gränssnitt.