¿Por qué onResume se llama cuando abro por primera vez la pestaña de un tabhost?

Tengo un tabhost con algunas pestañas, y cada pestaña ha implementado el método onresume, porque necesito recargar todos los datos de una base de datos remota cada vez que el usuario ingrese de nuevo en un tabhost, no sólo la primera vez que lo abra.

Ok, funciona bien, pero el problema es que cuando el usuario abre por primera vez una pestaña, los dos métodos, onCreate y onResume son llamados, entonces, mi aplicación se conecta dos veces en la base de datos para recuperar la información …. Sólo quiero ser llamado onCreate cuando el usuario entra por primera vez en el tabhost

Cómo evitar este problema raro?

Como se indica en los documentos del ciclo de vida de la actividad , onCreate y onResume se llamarán siempre la primera vez que se inicie una actividad. Al volver a Actividad, se llamará al menos onResume, pero onCreate puede ser llamado de nuevo si Android necesita liberar recursos.

Si necesita que se inicie la instalación cada vez que regrese a la actividad, ¿por qué no solo pone la lógica en onResume?

Dado que el contenido de las pestañas son actividades, ambos deben crearse (y reanudarse) al iniciar la aplicación.

Una manera de evitar esto es usar vistas en lugar de actividades como el contenido de la pestaña. De esta forma, sólo tiene un método onCreate() porque sólo tiene 1 actividad ( TabActivity ).

Estoy de acuerdo con los otros carteles que debe volver a factorizar su aplicación. Usted no puede esperar simplemente pegar una actividad independiente en una pestaña y tener todo tiene sentido.

Dicho esto, usted podría tener una bandera en algún lugar que indique si el DB necesita inicialización. En onResume () de cada actividad, tienes algo como,

 synchronized (MyLock.class) { if (!initialized) { initDb(); MyLock.initialized = true; } } 
  • Reinicio / Pausa del hilo en onResume / onPause
  • Fragmento onResume no llamado
  • ¿Por qué onResume método de un fragmento nunca se disparó después de despedir un DialogFragment que se inició desde el fragmento?
  • Android - guardar / restaurar estado de fragmento
  • Android onResume adaptador de lista de actualización
  • La pantalla de bloqueo de los resultados del teléfono Android en varios sucesos onPause / onResume
  • La aplicación se bloquea cuando se reanuda
  • Android onCreate onResume
  • Se reanuda el fragmento que no es el más alto en backstack
  • Cómo reanudar MediaPlayer en Android después de presionar el botón de inicio y volver a abrir la aplicación
  • Uso de onResume () para actualizar la actividad
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.