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.
- Android extraño bloqueo lib.c
- Ninguna actividad encontrada para manejar Intent, Android
- ¿Cómo desactivar la interacción con los vídeos html5 en webview o capturar correctamente sus excepciones?
- Extraño dibujo de choque en lienzo en Android 4.0.3. A / libc: Señal fatal 11 (SIGSEGV)
- La aplicación Android falla sin ningún logcat ni ninguna excepción
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.
- Canal de entrada cerrado del editor o se ha producido un error. Eventos = 0x8
- La aplicación de Android se bloquea, pero no se reinicia - se reanuda desde otro punto de la aplicación
- Matar la aplicación después del accidente
- Android: ¿Cuándo es apropiado utilizar FragmentTransaction.remove?
- Android java.lang.AssertionError: java.lang.NoSuchMethodException - Proguard
- Android: vista de la cámara: la aplicación se bloquea cuando no utilizo un método obsoleto
- Solucionar 'la aplicación ha detenido' los errores de error
- JSApplicationIllegalArgumentException con React Native Android
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 …
- ¿Por qué Android tiene su propia implementación de URI y no utiliza la implementación de Java por defecto?
- Android: Marcar mensaje de texto (SMS) no leído