この状況が危険かどうかについて、私は少し混乱しています。
コールバック リスナーへの参照を含むオブジェクトがあります。オブジェクト内の特定のイベントで、コールバック リスナーが呼び出されます。抽象コールバック関数の実装により、オブジェクトへの既存の参照のみが削除されます。コールバックが戻ると、イベント ハンドラーで他のことを行い、メンバーを操作することもあります。
このオブジェクトへの唯一の参照がなくなったので、Dalvik JVM ガベージ コレクターは、イベント ハンドラーで残りの作業を行っているにもかかわらず、私のオブジェクトをガベージ コレクションしようとしますか? そして、これの結果はどうなりますか?
私の状況を説明するために、単純でかなり役に立たないコードをいくつか書きました。
public SomeClass {
public abstract class CallBackListener {
public void abstract callback();
}
private CallBackListener mCb = null;
private OrgObject mObject = null;
public SomeClass() {
mCb = new CallBackListener() {
@Override
public void callback() {
mObject = null;
}
};
mObject = new OrgObject(mCb);
}
}
public class OrgObject {
private SomeClass.CallBackListener mCb = null;
public OrgObject(SomeClass.CallBackListener cb) {
mCb = cp;
}
public void event() {
//call callback
cb.callback();
//do other stuff
}
}
この状況および/または実践に関する情報はありますか?
前もって感謝します