Tengo una clase Singleton Data, que utilizo para almacenar datos. Estoy accediendo a ella en diferentes Fragment
s.OnSaveInstanceState con Singleton
Cuando se carga la primera Fragment
, no hay problema de que todos los campos en Singleton sean null
. Cuando se muestra el segundo Fragment
, depende de estos campos para mostrar sus datos. El primer Fragment
garantiza que estos campos se inicialicen.
Sin embargo, cuando el usuario presiona el botón de inicio en la segunda Fragment
, y lo abre de nuevo después de como una hora o así, el Singleton ha perdido todos sus datos y el Fragment
intenta acceder null
campos.
Quería implementar el método onSaveInstanceState
, pero estoy perplejo sobre cómo funciona esto: no tengo ninguna instancia de los datos para asignarlo.
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable("DATA", Data.getInstance());
}
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
savedInstanceState.getSerializable("DATA"); //What to do with this?
}
Cualquier ayuda es bienvenida.
Pero, no estoy seguro de entender por qué el singleton perdería todos sus datos. La aplicación todavía se está ejecutando en segundo plano, ¿no es así? Uso el mismo paradigma en mi aplicación y no he visto esta pérdida de datos. – Aviral
Estoy experimentando este problema, así que supongo que sí. – nhaarman
¡Interesante! Si tiene alguna idea de por qué desaparecen los datos en el singleton, publique. Esto me está causando preocupación. Gracias. – Aviral