OnResume () no se activa en los elementos TabHost

Tengo un TabHost con dos tabs en él. La primera vez que cambie a la segunda tab onResume() método onResume() de tab's activity de mi segunda tab's activity . Luego tengo un AlertDialog mostrado y después de que desaparezca el método 'onResume ()' no se llama pero realmente lo espero. Supongo que la invocación de 'AlertDialog' activa el método onPause () 'y el' onResume () 'debería ser llamado antes de que' Activity 'se muestre realmente y listo para la interacción con el usuario. Pero en cara 'onPause ()' no se llama cuando vuelvo a la primera tab que es otra activity .

¿Puede aconsejar por qué los métodos 'onPause ()' y 'onResume ()' no se llaman y qué métodos se llaman después de mostrar un 'AlertDialog' o cambiar entre tabs ?

Supongo que la invocación de 'AlertDialog' dispara el método onPause () 'y el' onResume () 'debería ser llamado antes de que' Activity 'se muestre realmente y esté listo para la interacción con el usuario

AlertDialog no afecta el ciclo de vida de la actividad.

Echa un vistazo al diagrama de flujo del ciclo de vida de la actividad aquí.

Al cambiar entre las pestañas, si desea un método de devolución de llamada ¿por qué no utiliza un escucha TabChanged

Cuando se crea un TabHost para celebrar las actividades, los niños dentro de él no puede administrar sus propios métodos de lifecycle (onResume, onPause, onCreated, etc), y el padre (el titular) debe hacer todas las gestiones. He implementado este comportamiento sobrescribiendo onPause y onResume en el titular (la actividad que define el tabhost), como esto:

 @Override public void onPause() { super.onPause(); try { mlam.dispatchPause(isFinishing()); } catch (Exception e) {} } @Override public void onResume() { super.onResume(); try { mlam.dispatchResume(); } catch (Exception e) {} } 

Donde " mlam " es la instancia de LocalActivityManager. Con él, creo que su onResume / OnPause métodos va a ser activado. Espero que esto te ayude de alguna manera.

Tengo el mismo problema, y ​​lo intento, y funciona ~~

 private OnTabChangeListener TabChangeListener = new OnTabChangeListener() { @Override public void onTabChanged(String tabId) { if (tabId.equals("download")){ mlocalActivityManager.dispatchPause(isFinishing()); mlocalActivityManager.dispatchResume(); tabs.setCurrentTab(1); } } }; 

@ Mthama respuesta funcionó perfectamente bien y había declarado LocalActivityManager como una variable local en el nivel Tabhost. Sin embargo, si sólo quería uno de los onResume () en una pestaña específica para disparar, hice lo siguiente.

 protected void onResume() { super.onResume(); try { if(mLocalActivityManager != null){ TabActivityOne tabActivity1 = (TabActivityOne) mLocalActivityManager.getActivity("tabId1"); if(tabActivity1 != null){ tabActivity1.onResume(); } } } catch (Exception e) { } } 
  • Actualizar pestañas de la actividad de una pestaña en un TabHost de Android
  • No se pudo crear el contenido de la pestaña porque no se pudo encontrar la vista con id -1 Error XML en Android Eclipse?
  • Cómo crear pestañas en la aplicación de Android y agregar pestañas de forma dinámica (dependiendo de los usuarios coincidentes)
  • ¿Cuál es la diferencia entre actionbar y tabhost / tabactivity
  • La actividad en el host de tabulación se queda en blanco
  • Cómo crear un diseño con pestañas en Android 4.0?
  • La actividad no se está reiniciando en la pestaña cambiada en android
  • Implementación de desplazamiento entre pestañas mediante tab-host en Android
  • Android - Navegación por pestañas <al extender una nueva actividad>
  • Cómo implementar el menú de pestaña de Android sin tabhost obsoleto
  • Android: NPE en TabSpec setContent (Ver)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.