public abstract class BaseActivity extends Activity {
/*
* 处理网络请求结果
*/
public abstract void handlerNetRequest(final BaseActivity activity, final Message msg);
//创建静态Handler内部类 以避免内存泄漏
protected static class MyHandler extends Handler {
//用弱引用保存activit引用
protected final WeakReference<BaseActivity> mActivity;
//用于同步
protected final String syncObj = new String();
public MyHandler(BaseActivity activity) {
mActivity = new WeakReference<BaseActivity>(activity);
}
}
protected final MyHandler handler = new MyHandler(this){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
BaseActivity activity = mActivity.get();
if(activity != null) {
handlerNetRequest(activity, msg);
}
}
};
}
在BaseActivity的子类中重写handlerNetRequest方法,这个方法会造成子类内存溢出不