Android
Ciclo de vida de la interfaz de usuario
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