Handler
たとえば、 aを直接初期化して a で使用すると、Activity
リークすることを私は知っていますContext
( Alex Lockwoodの厚意による)。
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
が、そうでないことをどのように確認できますか?