3
我有一個ViewPager與FragmentStatePagerAdapter。在ViewPager片段的onViewCreated方法我稱之爲LoadManager的initLoader方法來啓動這樣AsynLoaderTask和ViewPager
public void onViewCreated(final View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
list = (ListView) view.findViewById(R.id.list);
list.setEmptyView(view.findViewById(R.id.empty));
getLoaderManager().initLoader(0, null, this).forceLoad();
}
課程的片段實現LoaderCallbacks的AsyncTaskLoader,找到的相關方法的實現如下:
@Override
public Loader<List<String>> onCreateLoader(int id, Bundle args) {
logger.debug("Created loader");
return new AsyncTaskLoader<List<String>>(getActivity()) {
@Override
public List<String> loadInBackground() {
return getResults();
}
};
}
@Override
public void onLoadFinished(Loader<List<String>> loader,
List<String> data) {
logger.debug("loader finished");
if (data != null) {
adapter = new CustomListAdapter(getActivity());
list.setAdapter(adapter);
adapter.addAll(data);
}
}
@Override
public void onLoaderReset(Loader<List<String>> loader) {
}
我遇到的問題是,第一頁一切按預期工作,但對於後續頁面,我看到onCreateLoader調用完成,AsyncTaskLoader的loadInBackground方法被調用,但onLoadFinished未被調用,因此現在交付結果。
我正在使用Android支持庫。
有誰知道我做錯了什麼?
錯誤從版本13開始,此幫助: http://stackoverflow.com/a/18302563/1882287 – pavel