Manejar "No mantener actividades" en la aplicación Android

Tengo 2 actividades : una actividad que muestra una lista de informaciones al usuario, y su subactividad donde el usuario puede crear nuevas informaciones.

En claro, desde la primera actividad, llamo un " startActivityForResult ()" y cuando el usuario pone lo que quiere en la segunda actividad, vuelvo a la primera actividad y recibo las informaciones en la función " onActivityResult ()" para Guardar las informaciones.

Mi problema aquí es el "No mantener Actividades" opciones. He leído que esto ocurre en teléfonos con poca memoria. ¿Pero cómo podemos manejar eso cuando el dispositivo cierra las actividades?

En mi ejemplo, cuando se llama a la segunda actividad, la primera es asesinada , por lo que un accidente ocurre cuando regresamos a esa actividad, y mis datos se pierden.

¿Cuál es la manera correcta de manejar eso? Sabiendo que no puedo guardar mi información en la segunda actividad porque estoy usando archivos.

Use SharedPreferences para su propósito. Por cierto, puede utilizar esta técnica para almacenar sus datos cuando cierre su actividad en absoluto.

Tome sus datos de clase, convertirlo en String usando GSON y guárdelo.

Al cargar, simplemente muévalo desde SharedPreferences y convierte de nuevo de String a tu Object.

Digamos que tienes la clase MyData con toda la información impotente.

 MyData myData = ....; SharedPreferences mPrefs = context.getSharedPreferences("MyPrefs", 0); Gson gson = new Gson(); String toStore = gson.toJson(myData); SharedPreferences.Editor editor = mPrefs.edit(); editor.putString("stored", toStore); editor.commit(); .... 

Cuando devuelve la actividad anterior:

 String loadedMyDataStr = mPrefs.getString("stored", ""); MyData data = gson.fromGson(loadedMyDataStr, MyData.class ); 

Como usted dijo, cada actividad se puede matar en cualquier momento después de la onPause método onPause . Puede almacenar su estado ListView desde la primera actividad en onPause y cargarlo en onResume – puede utilizar un singleton para este propósito.

También sus operaciones en onPause debe ser tan rápido como sea posible, no haga ninguna operación compleja allí. De lo contrario, su aplicación puede parecer que se ha congelado y ningún usuario puede interactuar con él …

  • Unity APK de Android se estrelló al inicio
  • Android: la aplicación se bloquea al iniciar una nueva actividad
  • Android en Eclipse se bloquea cada vez que abra main.xml
  • Google map android API V2 se estrelló
  • SoLoader $ WrongAbiError con React Native Android
  • La aplicación de Android se bloquea después de la versión de actualización de las herramientas de SDK (NoClassDefFound, versión de la herramienta 22)
  • Dónde encontrar el historial de fallos de Android
  • Comprensión de bloqueos y ANR con Proguard habilitado
  • AssetManager $ AssetInputStream.finalize () se ha agotado después de 10 segundos
  • Android poco convencional y desagradable durante el código de carga de JNI / OpenGL ES
  • Detectar bloqueo de aplicación en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.