¿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
- Ciclo de vida de Android: rellena datos en actividad en onStart () o onResume ()?
- Llamar aResumo en la actividad de Android
- ViewPager con fragmentos - onPause (), onResume ()?
- Actualizar Android ListView
- No se puede reanudar la actividad
Cómo evitar este problema raro?
- Comportamiento del botón de retroceso de Android
- Android: ejecuta el código onResume y onPause para todas las actividades de la aplicación?
- Reemplazar un Fragmento consigo mismo no muestra nada
- ¿Qué método de actividad se llama cuando ocurren cambios de orientación?
- Comportamiento impredecible causado por PackageManager.DONT_KILL_APP
- Se reanuda el ciclo de vida de la actividad / multimedia en la pantalla de bloqueo
- Android: el inicio de sesión de Facebook provoca error de onResume sólo por primera vez
- ¿El botón de retroceso de Android no reinicia la actividad?
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; } }
- GetSearchForm devuelve null cuando se utiliza UserSearch en XMPP con aSmack
- Android: autoLink para números de teléfono no siempre funciona