2010-06-18 8 views
0

Ma question sont commentées dans le codeAndroid ==> Questions de gestion Mmory?

ImageView img = new ImageView(); 
this.layout.addView(img); 
MyObject o = new Object(img); 
// Do i need to set img to null? 

ArrayList <MyObject> myArray = new ArrayList <MyObject>(); 
MyObject obj = new MyObject(); 
myArray.add(obj); 
// Do i need to set obj to null? 

Répondre

1

Pourquoi auriez-vous besoin de le mettre à null?

Si vous êtes préoccupé par la récupération de place, la référence cesse d'exister dès que la variable locale est réaffectée ou est hors de portée. (Ce n'est pas si simple, mais c'est l'idée générale.)

+0

Je viens de passer de l'objectif c (iphone dev) Dans l'objectif c dans les deux cas, si je ne libère pas les objets que j'ai mentionnés (ou définir eux à null) j'obtiendrais une fuite de mémoire. Je voulais juste m'assurer que cela ne s'applique pas à Java. Encore une chose, est-ce une bonne idée d'appeler le garbage collector toutes les 10 secondes? Merci – aryaxt

+1

Non, vous n'avez jamais besoin d'appeler le garbage collector. Cela fonctionne tout seul en arrière-plan. –

+1

Couple de liens que vous pourriez trouver utile, http://www.ibm.com/developerworks/java/library/j-jtp01274.html a une bonne explication sur pourquoi la mise à null peut être mauvaise. http://chaoticjava.com/posts/how-does-garbage-collection-work/ Est un bon, des détails sur le fonctionnement de la collecte des ordures, si vous êtes intéressé. –

0

Vous pouvez trouver beaucoup de conseils utiles ici (Designing for Performance.) Concernant la mémoire, la performance dans Android. Et bien sûr, vous n'avez pas besoin de mettre des variables à null dans votre code