Pregunta

tengo un tabhost con algunas fichas, y cada pestaña han puesto en práctica el método onResume, porque tengo que volver a cargar todos los datos de una base de datos remota cada vez que el usuario introduzca de nuevo en un tabhost, no sólo la primera vez que lo abre .

bien, funciona bien, pero el problema es que cuando el usuario abre por primera vez una ficha, se llaman los dos métodos, onCreate y onResume, entonces, mis App Connect dos veces en la base de datos para recuperar la información. ... quiero sólo para ser llamado onCreate cuando el usuario introduce por primera vez en el tabhost

cómo evitar este problema rara?

¿Fue útil?

Solución

Como se indica en la Actividad ciclo de vida de documentos , y onCreate onResume siempre tanto se llama la primera vez que se inicia una actividad. Cuando vamos a volver a la actividad, al menos onResume serán llamados, pero onCreate pueden ser llamados de nuevo si necesitaba Android para liberar recursos.

Si necesita la configuración que se produzca cada vez que regrese a la actividad, ¿por qué no sólo poner la lógica en onResume?

Otros consejos

Ya que el contenido de las pestañas son las actividades, luego ambos se tienen que crear (y reanudación) cuando se inicia la aplicación.

Una forma de evitar esto, es el uso de puntos de vista en lugar de actividades como el contenido de la ficha. De esta manera, sólo tiene 1 onCreate() método ya que sólo tiene 1 actividad (la TabActivity).

Estoy de acuerdo con los otros críticos que debe volver a los factores de su aplicación. no se puede simplemente esperar a pegar una sola actividad de soporte en una pestaña y tiene sentido hacer todo.

Dicho esto, usted podría tener un algún lugar de la bandera que indica si el PP necesita la inicialización. en onResume de cada actividad (), usted tiene algo así como:

synchronized (MyLock.class) {
    if (!initialized) {
      initDb();
      MyLock.initialized = true;
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top