2011-02-03 12 views
5

Hola gente, Casi he terminado de escribir mi primera aplicación de Android. Es una aplicación para tomar notas con agregar, editar pantallas de visualización, etc. ...Android - ¿Qué es más eficiente?

Inicialmente, me ocupaba de moverme de una pantalla a otra en una sola actividad creando nuevos objetos de diseño como tablas, etc., y mostrándolos. Sin embargo, después de leer un poco más he cambiado mi método para pasar de una pantalla a otra utilizando diferentes actividades para diferentes pantallas. Sin embargo, cada actividad que se llama como una intención recupera una gran cantidad de variables de la actividad principal a través de setExtra y también remite una gran cantidad de variables.

Ahora quiero mi aplicación sea lo más eficiente posible y yo personalmente creo que el manejo de todo en una sola actividad es menos memoria y el uso intensivo del procesador, aunque esto tiene el negativo del significado de variables siempre están presentes (y el consumo de memoria) desvincular en una actividad separada donde son asesinados al finalizar(). Pero ustedes son más conocedores que yo, entonces, ¿cuál creen que es la mejor manera de hacerlo?

+0

Por lo que quieres hacer, es extraño que necesites pasar tantas variables entre actividades. ¿Qué tipo de variables son? ¿Y a qué te refieres con "un gran número"? – Dalmas

+0

¿Mide usted realmente los problemas de rendimiento que recibió el cuadro de diálogo ADNR? Si no, probablemente no deberías preocuparte por el rendimiento. –

Respuesta

5

Si inicia una nueva actividad para las nuevas pantallas, entonces agregará esa actividad a la pila. De esa forma, un usuario puede presionar hacia atrás y volver a la actividad anterior. Simplemente cambiando el diseño elimina esta funcionalidad. Dudo mucho que tengas problemas de rendimiento de cualquier manera.

La mejor práctica sería comenzar una nueva actividad, el mejor rendimiento podría ser utilizar su enfoque actual.

+1

También el enfoque de Actividades múltiples hace que la reutilización sea más fácil. –

1

Todas sus actividades residirán y se ejecutarán desde el mismo proceso. Por lo tanto, no hay ninguna razón por la que deba pasar por alto una pila de variables. Podría (por ejemplo) pegarlos en un singleton que represente su contexto. Cuando una actividad se transfiere a otra, rellena el singleton y la siguiente recoge sus datos desde allí.

Por supuesto, si alguna vez tiene la intención de que una actividad externa interactúe con las suyas, puede que tenga que replantearse este enfoque, pero creo que estaría bien que mantenga sus puntos de vista como actividades separadas. Incluso si la memoria es un poco más alta, creo que es mejor hacer las cosas correctamente y solo preocuparse por la optimización solo si es obvio que lo necesita.

Cuestiones relacionadas