2012-02-03 16 views
6

Si tengo una opinión de que haré referencia con regularidad decente (para cambiar su visibilidad, etc.), ¿es más eficiente almacenar esta Vista como una variable miembro o ejecutar findViewById() cada vez que necesito una referencia a eso?Android: ¿es eficiente almacenar referencias a Vistas como variables miembro?

La variable miembro requiere uso de memoria, mientras que el método toma más tiempo. ¿Alguien conoce una buena práctica establecida para esto?

Respuesta

8

Es mucho más eficiente almacenar la referencia. El costo de la memoria de la referencia será mínimo (no recuerdo el costo exacto pero es del orden de 4 bytes).

+0

Pero si guardo referencias de vista como miembros de un fragmento, ¿se perderán cuando se ejecuteDestroyView()? –

1

La verdadera preocupación es donde almacena la referencia. Por encima de todo, no desea retener la referencia cuando la Vista ya no está en uso; Las cosas malas pueden resultar si lo haces.

+0

Para que quede claro, el único "dónde" que se discute aquí es "como miembro del objeto". Supuse que también podría almacenarse como miembro de la clase (lo que significa declararlo como estático, ¿no?). Aquí hay un enlace que explica por qué sería malo: http://developer.android.com/resources/articles/avoiding-memory-leaks.html ¿Hay algún escollo además de hacer la variable estática? – SilithCrowe

Cuestiones relacionadas