总所周知,handler的初级写法会造成内存泄露,那么如何搞定呢?
新建一个MyWeakReferenceHandler.java,里面的内容为:
import java.lang.ref.WeakReference;
import android.app.Activity;
import android.os.Handler;
import android.os.Message;
public abstract class MyWeakReferenceHandler<T extends Activity> extends Handler {
private WeakReference<T> weakReferenceActivity = null;
public MyWeakReferenceHandler(T t) {
this.weakReferenceActivity = new WeakReference<T>(t);
}
public abstract void handleMessage(Message msg, T weakReferenceActivity);
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
handleMessage(msg, weakReferenceActivity.get());
}
}
哎,全部代码都贴出来了,如果不知道怎么用那你就哀哉了。。。。。