onDestroy () se llama cuando se presiona el botón de retroceso
En mi actividad, he onDestory()
y sólo poner una llamada de registro para mostrar si este método se está llamando. (probado en Android 4.2.2 y 4.4.4)
@Override protected void onDestroy() { Log.i(TAG, "onDestroy() was called"); super.onDestroy(); }
Cuando presiono el botón de regreso, este método se llama (vi el registro).
- Flag Activity Clear Top destruye la actividad objetivo y que la crea
- La actividad no llamó a terminar? (API 23)
- Android: mantén agregado previamente la intención adicional cuando vayas a la actividad de los padres
- ¿Por qué se debe llamar OnCreate sólo una vez al inicio de la Actividad?
- Manteniendo los hilos y el estado de la conexión en la aplicación de Android usando onSaveInstanceState?
Creo que esto no debería suceder a menos que el teléfono tenga poca memoria o algo. No tengo mucho en la aplicación, pero la MainActivity y algunos fragmentos.
Aquí está el registro cuando el usuario está en la MainActivity y presiona el botón Atrás:
I/MainActivity? onBackPressed() was called I/MainActivity? onStop() was called I/MainActivity? onDestroy() was called
¿Por qué sucede esto?
También revisé isFinishing()
en la onPause()
y siempre devuelve true
Desde el Javadoc:
Realice cualquier limpieza final antes de destruir una actividad. Esto puede suceder ya sea porque la actividad está terminando (alguien terminó en ella o porque el sistema está destruyendo temporalmente esta instancia de la actividad para ahorrar espacio). Puede distinguir estos dos escenarios con el método isFinishing. este método se llama como un lugar para guardar datos!
- ¿Cómo usar onResume ()?
- RxJava se vuelve a suscribir al evento tras la restauración de la actividad
- Android: ¿En qué circunstancias podría aparecer un diálogo que cause onPause ()?
- Diferencia entre setContentView y LayoutInflater
- Android: mantiene varias instancias de una actividad en la pila posterior
- ¿Android pasa información persistente en paquetes o usa un patrón singleton?
- Aplicación eliminada mientras se realiza onPause (). ¿Algún consejo sobre cómo manejar tal caso?
- ¿Cuándo usar getSharedPreferences vs savedInstanceState?
Al pulsar el botón Atrás dentro de una Activity
, llamará a finish()
, que lo "cerrará".
Actividad.java
/** * Called when the activity has detected the user's press of the back * key. The default implementation simply finishes the current activity, * but you can override this to do whatever you want. */ public void onBackPressed() { if (!mFragments.popBackStackImmediate()) { finish(); } }
Cuando sucede, onDestroy()
puede (y usualmente será) llamado.
protected void onDestroy ()
Realice cualquier limpieza final antes de destruir una actividad. Esto puede suceder ya sea porque la actividad está terminando ( alguien llamó finish () o porque el sistema está destruyendo temporalmente esta instancia de la actividad para ahorrar espacio. Puede distinguir estos dos escenarios con el método isFinishing ().
La misma razón también va a por qué poner isFinishing()
en onPause()
siempre devuelve true
, si presionas el botón back (call finish()
) . No devolverá true
si ocultas la Activity
con otro método, por ejemplo, presionando el botón de inicio.
- No se puede detectar iBeacon usando AltBeacon / android-beacon-library
- Diseño del material: ¿Dónde colocar la elevación en los estilos android?