Restauración del estado en Android cuando se utiliza el botón "arriba"
Estoy utilizando onSaveInstanceState()
para almacenar una variable de miembro ArrayList
y restaurarla en el método onCreate()
de la actividad principal. Esto funciona en la mayoría de las circunstancias, como la rotación de la pantalla, etc, pero si abro una nueva actividad y utilizar el botón "arriba" (no el botón Atrás) para navegar de nuevo a la pantalla principal, parece crear una nueva actividad principal sin pasar la Estado en onCreate()
.
He confirmado que cuando se presiona el botón de arriba, se llama al método onDestroy()
para la instancia original de la actividad principal que no tiene sentido para mí porque quiero que reanude la actividad existente como si hubiera presionado el botón de retroceso en lugar de Crear uno nuevo.
- Cómo administrar el estado de la interfaz de usuario y la pila posterior en un diseño de panel único / dual
- Comprender el ciclo de vida de la actividad de los fragmentos
- DialogFragment mostrado desde onContextItemSelected no sobrevive onPause / onResume
- Variables estáticas públicas y gestión del ciclo de vida de la actividad de Android
- Al cerrar la sesión, desactive la pila del historial de actividades, evitando que el botón "volver" abra las actividades activadas
¿Hay una manera que puedo forzar a la nueva actividad para restaurar la antigua o simplemente reanudar la actividad existente?
- ¿Qué sucede si startActivity () se llama a la actividad ya creada?
- ¿Se llama onPause () o onStop () incluso si el teléfono muere por falta de energía?
- Cuando se llama onRestoreInstanceState?
- Manejo de cambios de configuración de UI automática en Actividad y Fragmento falla a veces
- Android Fragment onCreateView vs. onActivityCreated
- SavedInstanceState vs getIntent (). GetExtras ()
- Los miembros de la clase en Fragmento se convierten en nulos después de pulsar el botón Inicio y esperar
- La aplicación se reinicia en lugar de continuar
Intente establecer el modo de inicio de la actividad principal en singleTop, en su manifiesto:
<activity android:name="activityName" android:launchMode="singleTop" ... />
Has intentado usar
Intent i = new Intent(this, MainScreenActivity.class); i.setFlags(Intent.FLAG_CLEAR_TOP); startActivity(i); finish();
Este código debe ser llamado al presionar el botón hacia arriba.
- Android Emulator para Windows (no instalar el SDK completo, sólo el emulador necesario)
- Android: Socket – java.net.SocketException: sendto ha fallado: EPIPE (Broken pipe)