2010-11-14 14 views
7

amici,punti di perdite di memoria Android non sono chiari!

Ho letto l'articolo completo relativo a evitare perdite di memoria in Android. http://developer.android.com/resources/articles/avoiding-memory-leaks.html

momento

1) sto usando classe annidata privato non statica

se faccio quella classe innestata statica sarà utile?

2) articolo dice Se stai per utilizzare classi interne o classi anonime, pensa attentamente. Non utilizzare le Classi anonime finché non sei molto sicuro e puoi provare che non causano perdite di memoria.

qualcuno può darmi un esempio di questo? quale è un buon approccio e quale uno negativo per le perdite di memoria.

qualsiasi aiuto sarebbe apprezzato.

+0

In secondo luogo, ho letto l'articolo molte volte e sono ancora incerto su cosa dovrei fare esattamente per evitare perdite nella mia app. Devo mantenere un riferimento ad ogni drawable nella mia app e impostare il suo callback su null ?? Cosa dovrei fare, l'articolo dovrebbe davvero fornire qualche esempio in più di quanto sia importante un argomento. – marchinram

+0

sì giusto sono confuso anche gli esempi non sono abbastanza chiari e hanno bisogno di ulteriori spiegazioni. – UMAR

risposta

1

1) Eviterei di utilizzare classi statiche in generale. Soprattutto se è necessario passare nel puntatore del contesto, in quanto ciò causerà una perdita. A meno che le classi statiche non abbiano costanti, sono analoghe alle variabili globali e aggirano l'architettura di Android che ha lo scopo di disaccoppiare le attività.

Soprattutto se non si desidera dichiarare istanze disegnabili o oggetti framework Android come statici. Questo rovina la loro vita.

2) Non ho riscontrato alcun problema con le classi anonime in particolare. In alcuni casi potresti essere in grado di filtrare una variabile di contesto, ma è difficile farlo su un singolo thread. Quando si passa un contesto, è possibile limitare le perdite utilizzando getApplicationContext(), che restituisce il contesto globale che non si verificherà.

Spero che questo aiuti!

+0

Vedere anche questo thread: http://code.google.com/p/android/issues/detail?id=8488 – swinefeaster

+0

Non so se si riscontrano problemi in questo caso, ma ho trovato un calo nella soluzione che risolve tutti i problemi di perdita di memoria di Android con le classi Android standard: http://code.google.com/p/android/issues/detail?id=8488#c51 – swinefeaster

Problemi correlati