0
我需要在繼承的final
字段(mCursorLoader
)的子類中註冊Listener
。我需要在我的子類的constructor
中執行此操作。 最好不要將字段更改爲non-final
或在子類中執行任何unRegistering
。在子類的構造函數中註冊監聽器
問題是我的父類正在其構造函數中註冊Listener
實現。我需要一種方法來防止它註冊Listener
然後註冊子類Listener
或取消註冊父類Listener
,然後註冊子類Listener
。
由於難以解釋,所以如果需要更多說明,請告訴我。
public abstract class A<T> extends AsyncTaskLoader<List<T>> {
protected final Listener mListener = new Listener();
protected final CursorLoader mCursorLoader;
protected final String mId;
public A(Context context, String mId) {
super(context);
this.mCursorLoader = new CursorLoader(context);
this.mCursorLoader.registerListener(0, mListener);
this.mId = mId;
}
public class Listener implements OnLoadCompleteListener<Cursor> {
public void onLoadComplete(final Loader<Cursor> loader, final Cursor cursor) {
}
}
}
public abstract class B<T> extends A<T> {
protected B(Context context, String mId) {
super(context, mId);
}
public class Listener implements OnLoadCompleteListener<Cursor> {
public void onLoadComplete(final Loader<Cursor> loader, final Cursor cursor) {
}
}
}
感謝您的回答,但我知道我要做什麼。這與你的建議非常相似。我只是想刪除這個問題,因爲這是非常本地化的。謝謝 – prolink007