0
AsyncTaskLoader有一些問題。 我的活動有2個片段:FragmentA和FragmentB。在onCreateView()的FragmentA處我加載了我的loader。它啓動,加載並將數據返回給onLoadFinished()。沒關係。現在我喜歡更換FragmentA碎片B:在返回片段後調用OnLoadFinished
FragmentB fragmentB = FragmentB.createInstance(movieId);
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.addToBackStack(null);
fragmentTransaction.replace(R.id.fragment_container, fragmentB).commit();
後,我點擊後退按鈕,並從B片段再次回到片段A.而剛剛回到片段AI後接到電話onLoadFinished(),但我不想要它。
我的裝載機:
private Response data;
public Loader(Context context) {
super(context);
}
@Override
public void deliverResult(Response data) {
if(isReset()) {
return;
}
if(isStarted())
super.deliverResult(data);
}
@Override
protected void onStartLoading() {
if (this.data != null) {
deliverResult(this.data);
}
if (this.data == null) {
forceLoad();
}
}
@Override
protected void onStopLoading() {
cancelLoad();
}
@Override
protected void onReset() {
onStopLoading();
if(this.data != null) {
data = null;
}
}
它的工作原理。 onLoadFinished()調用重新添加片段到活動? – Andrew