Suche…


Speichern von Daten beim Speichern von Daten

public class ExampleActivity extends Activity {
    
    private final static String EXAMPLE_ARG = "example_arg";
    private int mArg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_example);
        
        if(savedInstanceState != null) {
            mArg = savedInstanceState.getInt(EXAMPLE_ARG);
        }
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putInt(EXAMPLE_ARG, mArg);
    }
}

Erläuterung

Was passiert also hier?

Das Android-System ist stets bemüht, so viel Speicher wie möglich zu löschen. Wenn Ihre Aktivität also im Hintergrund ist und eine andere Vordergrundaktivität die Freigabe verlangt, ruft das Android-System onTrimMemory() für Ihre Aktivität auf.

Das bedeutet jedoch nicht, dass alle Ihre Eigenschaften verschwinden sollten. Was Sie tun sollten, ist, sie in einem Bundle-Objekt zu speichern. Bundle-Objekte werden in Bezug auf den Speicher viel besser behandelt. Innerhalb eines Bündels wird jedes Objekt durch eine eindeutige Textsequenz identifiziert - im obigen Beispiel wird die Ganzzahlvariable mArg unter dem Referenznamen EXAMPLE_ARG . Wenn die Aktivität wiederhergestellt ist, extrahieren Sie Ihre alten Werte aus dem Bündelobjekt, anstatt sie von Grund auf neu zu erstellen



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow