4
나는 http://developer.android.com/resources/articles/avoiding-memory-leaks.html 기사를 읽었습니다. 이 기사에서는 Weak Reference가있는 정적 내부 클래스를 사용하는 것이 좋습니다.안쪽 등급의 안드로이드 약한 참조
public class GalleryVideo extends Activity {
private int AUDIO_NO = 1;
...........................
................
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gallery = (Gallery) findViewById(R.id.examplegallery);
gallery.setAdapter(new AddImgAdp(this));
}
static public class AddImgAdp extends BaseAdapter {
private int GalItemBg;
private Context cont;
private WeakReference<GalleryVideo> mGalleryVideo;
public AddImgAdp(Context c) {
mGalleryVideo = new WeakReference<GalleryVideo>(c);
TypedArray typArray = obtainStyledAttributes(R.styleable.GalleryTheme);
GalItemBg = typArray.getResourceId(R.styleable.GalleryTheme_android_galleryItemBackground, 0);
typArray.recycle();
}
public long getItemId(int position) {
final GalleryVideo galleryVideo = mGalleryVideo.get();
if(galleryVideo == null){
if(galleryVideo.AUDIO_NO==4){
..................
...............
}
}
}
}
}
약한 참조로 내부 클래스를 수정하는 올바른 방법입니까? 위의 코드 메모리가 누출되지 않습니까?
당신은 이것을 정교하게 설명 할 수 있습니까? "그것은 당신이 밖에서 그 물체를 가지고 무엇을 하는가에 달렸습니다 ......"? 감사 –