Buscar..


Guardar datos en el recorte de memoria

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);
    }
}

Explicación

¿Entonces, Que esta pasando aquí?

El sistema Android siempre se esforzará por borrar la mayor cantidad de memoria posible. Por lo tanto, si su actividad se reduce a un segundo plano, y otra actividad de primer plano exige su participación, el sistema Android llamará a onTrimMemory() sobre su actividad.

Pero eso no significa que todas tus propiedades deban desaparecer. Lo que debes hacer es guardarlos en un objeto Bundle. El objeto del paquete se maneja mucho mejor en cuanto a memoria. Dentro de un paquete, cada objeto se identifica mediante una secuencia de texto única: en el ejemplo anterior, la variable de valor entero mArg se mantiene bajo el nombre de referencia EXAMPLE_ARG . Y cuando se recrea la actividad, extraiga sus valores antiguos del objeto Bundle en lugar de recrearlos desde cero



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow