¿Por qué "onPause" no se llama en la siguiente situación?
Por el documento, se llama "onPause", cuando:
Cuando el sistema está a punto de comenzar a reanudar una actividad anterior.
- Reinicio / Pausa del hilo en onResume / onPause
- ¿Cómo detener el servicio cuando la aplicación se detiene o se destruye pero no cuando cambia a una nueva actividad?
- Android: ¿Cómo pausar y reanudar un temporizador de cuenta atrás?
- Android: ejecuta el código onResume y onPause para todas las actividades de la aplicación?
- Comportamiento del botón de retroceso de Android
En comparación con "onStop", la diferencia es:
Se llama cuando la actividad ya no es visible para el usuario, porque otra actividad se ha reanudado y está cubriendo esta.
Pero cuando presiono la tecla HW-Home y las "aplicaciones recientes" aparecen, la "onPause" no se llama.
En este momento, ya no puedo interactuar con la actividad original, pero todavía es visible.
Estoy confundido por esta situación. Por favor ayude a explicar.
Muchas gracias. BR Henry
- ¿Qué es la actividad inactiva y por qué se llama después del inicio de la aplicación?
- ViewPager con fragmentos - onPause (), onResume ()?
- OnCreate () llamado mientras se detiene la actividad (pero no se destruye). Sólo después de la instalación
- La pantalla de bloqueo de los resultados del teléfono Android en varios sucesos onPause / onResume
- OnSaveInstanceState () y onPause () secuencia de llamadas
- Detener temporizador sin destruir y volver a crear - Android
- OnResume Cámara Reinit Negro Pantalla
- onPause () problema del método en kitkat 4.4
Esto realmente sucede porque cuando la tecla Inicio es presionada durante mucho tiempo, no hay actividad que se inicie. La onPause / onStop sólo se llamará si selecciona una de las aplicaciones presentes en la lista "Apps recientes".
Los documentos de onPause () son bastante claros:
Llamado como parte del ciclo de vida de la actividad cuando una actividad va en segundo plano, pero aún no se ha matado.
public class MainActivity extends Activity { String tag="my result"; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.v(tag,"I am in oncreate"); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.v(tag,"I am in onDestroy"); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); Log.v(tag,"I am in onpause"); } @Override protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); Log.v(tag,"I am in onRestart"); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); Log.v(tag,"I am in onresume"); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); Log.v(tag,"I am in onstart"); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); Log.v(tag,"I am in onstop"); } }
Ejecútelo y compruebe el botón back logcat.press y luego check.after nuevamente inicie la aplicación y
Pulse el botón de llamada, luego compruebe logcat ahora pulse el botón Atrás y vuelva a comprobar logcat. Usted puede entender fácilmente el ciclo de vida de la actividad.
En una gran cantidad de teléfonos modernos, la lista de aplicaciones recientes es una actividad y onPause
. He probado esto en un par de teléfonos Samsung y LG, y los paquetes son com.android.systemui
y com.lge.launcher2
respectivamente.
Dicho esto, parece que no puede confiar en recibir una onPause cuando abra la pantalla de aplicaciones recientes. Tengo curiosidad por ver cuántos dispositivos no te dan la onPause
…
@Henry por favor Pruebe probando el flujo de la aplicación. Cree una actividad en la que se sobreescriben todos los métodos y el registro de impresión en todos los métodos. El flujo es onCreate >> onStart / restart >> onResume y cuando se pulsa el botón home o se inicia cualquier actividad nueva, entonces se llama onPause >> onStop y si terminas tu aplicación entonces tu aplicación es destruir / terminar así que donde hay confusión.
Esto es lo que los documentos oficiales dicen sobre onPause ()
Llamado como parte del ciclo de vida de la actividad cuando una actividad va en segundo plano, pero aún no se ha matado. La contraparte de onResume ().
Cuando se inicia la actividad B delante de la actividad A, esta devolución de llamada se invocará en A. B no se creará hasta que A's onPause () regrese, así que asegúrese de no hacer nada largo aquí.
Para detalles por favor vea esto .
Cuando se muestran las aplicaciones recientes, se llama al método onStop, el método onStop se llama tan pronto como la interfaz de usuario de la actividad no está enfocada como tal
- No se puede resolver el símbolo 'LocationClient' en Android Studio
- Ocultar la aplicación de Android en una larga pulsación-HOME-button-menu