0
即時通訊使用AsyncTaskLoader從Web API獲取數據,但由於某種原因,加載程序始終沒有觸發onLoadFinished回調。加載程序不是全部觸發加載完成的回調
這是從我的片段snippt,我如何使用裝載機。我總是重新啓動加載器restartLoader(...)。forceload()來更新結果。加載器基於用戶交互而被觸發。
private void getData() {
Bundle bundle = new Bundle();
bundle.putParcelable("userInput", mUserInputData);
getLoaderManager().restartLoader(CARS_LOADER_ID, bundle, carsLoaderListener).forceLoad();
}
private LoaderManager.LoaderCallbacks<List<Car>> carsLoaderListener = new LoaderManager.LoaderCallbacks<List<Car>>()
{
@Override
public Loader<List<Car>> onCreateLoader(int id, Bundle args)
{;
return new CarsLoader(getActivity(), (UserInput)args.get("userInput"));
}
@Override
public void onLoadFinished(Loader<List<Car>> loader, List<Car> data)
{
// This is not allways get called
setData(data);
}
@Override
public void onLoaderReset(Loader<List<Car>> loader)
{
}
};
即使它已經在運行,重新啓動加載程序也可以嗎?這是否會導致裝載機堵塞的情況?有時候加載器被解僱了,它正在完成這項工作,但它在LoadFinished回調中更新了一些。當加載程序像這樣卡住重新啓動時,片段/關閉應用程序可以解決問題。
謝謝!看起來可能會有所幫助。不過需要做更多的測試。仍然奇怪的問題,我認爲是在LoaderManager中的錯誤... – devha