3
我知道,如果你直接初始化Handler
並在Activity
使用它,它會泄漏Context
(的Alex Lockwood提供),用於例如這個Handler仍會泄漏上下文嗎?
public class SampleActivity extends Activity {
private final Handler mLeakyHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
/* ... */
}
}
}
所以我用下面的方法
private static class StaticHandler extends Handler {
private final WeakReference<SampleActivity> mSampleAct;
private StaticHandler(SampleActivity act) {
mSampleAct = new WeakReference<SampleActivity>(
act);
}
}
然後我初始化如下
public class SampleActivity extends Activity {
private Handler myHandler = new StaticHandler(this) {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
processTask(msg.obj);
}
};
}
我想知道如果我Handler
即將myHandler仍然會泄漏Context
,我怎麼能確定它不?