2011-12-18 20 views
9

En iOS, puedo escribir una aplicación completa usando un solo UIViewController y simplemente agregando toda la aplicación dentro de una jerarquía de UIView. Esto funciona bien ya que el UIViewController recibe una notificación cuando la situación de la memoria es mala y permite al desarrollador realizar una gestión/optimización de la memoria manual.Aplicación de Android basada en una sola actividad, múltiples fragmentos

¿Hay un equivalente a esto en Android?
¿Podría escribir una aplicación completa en una sola actividad y apilar fragmentos encima de esto?
¿Qué implicaciones tendría esto en el uso de la memoria, hasta donde yo entiendo, esto de evitar la gestión del ciclo de vida de la actividad y toda la pila de fragmentos permanecería en la memoria, o estoy equivocado?

Respuesta

4

¿Hay un equivalente a esto en Android?

No desde el punto de vista de la gestión de la memoria. No se le informa explícitamente sobre el espacio de bajo montón. El uso de cosas como SoftReference puede ayudar, pero eso es más a nivel de máquina virtual.

¿Podría escribir una aplicación completa en una sola actividad y apilar fragmentos encima de esto?

Si quieres, sí.

¿Qué implicaciones tendría esto sobre el uso de la memoria? Hasta donde yo entiendo, esto evitará la gestión del ciclo de vida de la actividad y toda la pila de fragmentos permanecerá en la memoria. ¿O estoy equivocado?

La "pila completa de fragmentos" estaría en la memoria independientemente de si están alojados por 1 actividad o N actividades.

+1

Si están alojados por N actividades, entonces serían parte de la gestión del ciclo de vida de la actividad. Si están todos en una sola vista, esto no significa que la única actividad esté siempre en la memoria con todos sus fragmentos, ya que es la única – user204884

+3

@ user204884 visible: Las actividades solo dejan memoria si las 'finaliza()' manualmente, o si el usuario presiona ATRÁS (y permite el procesamiento normal del botón ATRÁS), o el proceso finaliza. Por lo tanto, de forma predeterminada, tener 1 actividad frente a tener N actividades puede tener la misma huella de memoria con respecto a los fragmentos. Tener actividades N * * puede tener una huella de memoria menor, pero no está garantizada. Mis disculpas por no haberlo aclarado en mi respuesta. – CommonsWare

+1

@CommonsWare Acepto su respuesta, pero cómo eliminar todos los fragmentos al tiempo junto con la actividad que los contiene para borrar la memoria. ¿Va a borrar la memoria de inmediato o tomará un tiempo? – TNR

Cuestiones relacionadas