Si se detiene una actividad, se vuelve a crear lo que se pasa en getIntent ()
Paso un booleano a mi actividad cuando lo creo a través de un intento BundleExtra. Ahora mirando el ciclo de vida de la actividad , si mi actividad se detiene ( onStop
), entonces otra aplicación necesita memoria para que el proceso de la aplicación se onCreate
, entonces el usuario navega a la actividad ( onCreate
). ¿El último onCreate contiene mi booleano original que pasé? Supongo que si quería que se OnSaveInstanceState
, tendría que guardarlo en OnSaveInstanceState
, ¿correcto?
- Al usar 'android.intent.action.SEND', la actividad receptora no regresa a la actividad que inició el recurso compartido
- Depurar los intentos
- Cómo evitar la pantalla en negro cuando Intent.FLAG_ACTIVITY_NEW_TASK | ¿Está establecido Intent.FLAG_ACTIVITY_CLEAR_TASK?
- Problemas al recibir ACTION_PASSWORD_SUCCEEDED y ACTION_PASSWORD_FAILED intents
- Ocultar el icono de la aplicación y ejecutarlo
- Leer y escribir un ArrayList de ArrayLists que contiene Objetos parcelables para pasar en un intento
- Rjava.lang.IllegalArgumentException en startActivity (intención, animación de paquete)
- Diferencia entre Intent.FLAG_ACTIVITY_CLEAR_TASK e Intent.FLAG_ACTIVITY_TASK_ON_HOME
- ¿Cómo puedo pasar datos a una sola actividad de tarea después de la primera vez que se carga
- Cómo iniciar una nueva actividad en android
- Página de detalles de las aplicaciones de lanzamiento de Android
- Iniciar y detener la grabación desde un botón en una notificación
- Registrarse como reproductor de música y reproducir canciones
Yo usaría onPause () por esta razón (de los documentos)
Tenga en cuenta que es importante guardar datos persistentes en onPause () en lugar de onSaveInstanceState (Bundle) porque este último no forma parte de las devoluciones de llamada del ciclo de vida, por lo que no se llamará en todas las situaciones descritas en su documentación.
A continuación, lea de nuevo en onCreate()
por ejemplo, desde la base de datos o algún otro recurso en el que lo almacenó.
Así que dependiendo de lo importante que sea el valor booleano se utilizará el mecanismo de ahorro que desea .. para el estado persistente: http://developer.android.com/reference/android/app/Activity.html#SavingPersistentState
Y para el estado de la interfaz de usuario, como los textos simples, las selecciones usan onSaveInstanceState
como se describe aquí: Guardar el estado de la actividad de Android mediante Guardar el estado de la instancia
Como un resumen: cuando el proceso mató boolean = desaparecido si no se guardó 🙂
En realidad, cuando se recrea su actividad, se seguirá utilizando la intención original. getIntent()
devolverá la misma intención que cuando se creó por primera vez. Sin embargo, si tiene otros datos que desea conservar cuando se recrea la actividad, tendrá que guardarla con saveInstanceState()
. Puede verificar esto simplemente girando el dispositivo con una actividad en ejecución, ya que será destruido y recreado con la misma intención. Para obtener más información, consulte aquí .
Mauno V. tiene razón, en su caso debe ir con onPause ()
El hecho es onSaveInstanceState (Bundle bundle) está diseñado para guardar el estado en su instancia actual . Así que cuando se cancela tu aplicación, el paquete guardado también
Puede usar SharedPreferences para guardar su booleano:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); sharedPreferences.edit().putBoolean("hiBoolean", booleanValue).commit();
Y recuperarlo en su onCreate:
Boolean hiBoolean = sharedPreferences.getBoolean("hiBoolean", true);
- Android Studio / Win8 / ERR_NAME_NOT_RESOLVED
- Entrada de audio a través de la toma de auriculares en Android?