2012-02-03 9 views
6

Se ho intenzione di fare riferimento a una regolarità decente (per cambiare la sua visibilità, ecc ...), è più efficiente memorizzare questa vista come variabile membro o eseguire findViewById() ogni volta che ho bisogno di un riferimento ad esso?Android: è efficiente memorizzare riferimenti a Views come variabili membro?

La variabile membro richiede l'utilizzo della memoria, mentre il metodo richiede più tempo. Qualcuno è a conoscenza di una pratica consolidata per questo?

risposta

8

È molto più efficiente memorizzare il riferimento. Il costo di memoria del riferimento sarà minimo (non ricordo il costo esatto ma è nell'ordine di 4 byte)

+0

Ma se memorizzo i riferimenti di visualizzazione come membri di un frammento, si verificheranno quando si verifica onDestroyView()? –

1

La vera preoccupazione è dove si memorizza il riferimento. Soprattutto, non si vuole mantenere il riferimento quando la vista non è più in uso; Le cattive cose possono risultare se lo fai.

+0

Giusto per essere chiari, l'unico "dove" viene discusso qui è "come membro dell'oggetto". Supponevo che potesse anche essere memorizzato come membro della classe (il che significa dichiararlo come statico, giusto?). Ecco un link che spiega perché sarebbe male: http://developer.android.com/resources/articles/avoiding-memory-leaks.html Qualche tranello oltre a rendere la variabile statica? – SilithCrowe

Problemi correlati