Cómo almacenar vistas en caché con Android y evita llamar a onCreate cada vez

Tengo una pregunta que me molesta.

Con Android, tengo una aplicación que parece estar llamando a onCreate cada vez que se onCreate una nueva instancia de una actividad, porque esta actividad es el hijo de otro y se termina a sí mismo mientras termina su papel para una pieza de datos.

La convocatoria de onCreate cada vez parece volver a analizar el XML para crear las vistas y volver a conectar / volver a crear los oyentes para el código y así sucesivamente. Entonces, ¿hay alguna manera de almacenar en caché una actividad para ser recordada cada vez, sin verla si hacemos clic en el botón de retroceso en el dispositivo móvil? Es como tenerlo realmente escondido (no accesible con el botón de retroceso) y destruido sólo si es necesario.

Gracias a todos de antemano 🙂

Android manejará la mayoría de la visualización aplicable y la actividad de almacenamiento en caché y no debería tener que preocuparse por ello. Yo -sin duda- advierto contra el enfoque de alexkipar. Esto es bastante ingenuo y sólo empeorará el rendimiento, así como crear fugas de memoria y un comportamiento erróneo.

Si cree que se están creando demasiadas actividades, recomendaría que esté utilizando y comprendiendo correctamente el ciclo de vida de la actividad. Al igual que con todos los sistemas, Android equilibra la eficiencia y la reutilización, y siempre hay compensaciones que hacer.

Una idea falsa común que usted mencionó implica analizar XML. XML para las vistas no se almacena como XML puro, sino más bien en una forma compilada para la eficiencia. No tiene que preocuparse por esto, confíe en que el sistema está tratando de hacer las cosas lo más eficientes que pueda para usted.

Si se llama, significa que su proceso terminó de ejecutarse o fue asesinado por el sistema.

onCreate se llamará cada vez que empiece tu actividad. Así es como funciona el ciclo de vida de la actividad y no hay mucho que puedas hacer allí.

Si desea que su proceso permanezca en la memoria, entonces debería considerar su implementación como un servicio .

No se puede evitar que onCreate se llame en cada creación de actividad, porque así funcionan las cosas.

Su problema aquí es más un problema de arquitectura: usted tiene una característica que usted utiliza muy a menudo pero le dedica una actividad pesada entera a ella.

Si está buscando velocidad y capacidad de respuesta, una respuesta puede ser ViewFlipper . Usted define una actividad única, y cuando utiliza su función, simplemente cambia la vista. Toda la aplicación se carga al principio, entonces permanece en la memoria hasta que Dalvik necesita algo. Usted puede encontrar un ejemplo bastante complejo en el código de la aplicación de código abierto astrid .

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.