Android AsynLoaderTask和ViewPager

Android AsynLoaderTask和ViewPager,android,android-viewpager,asynctaskloader,Android,Android Viewpager,Asynctaskloader,我有一个带碎纸机的寻呼机。在ViewPager片段的onViewCreated方法中,我调用LoadManager的initLoader方法来启动类似这样的AsyncTaskLoader public void onViewCreated(final View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); list = (ListView)

我有一个带碎纸机的寻呼机。在ViewPager片段的onViewCreated方法中,我调用LoadManager的initLoader方法来启动类似这样的AsyncTaskLoader

    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,请在下面找到相关方法的实现:

    @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(int-id,Bundle-args){
调试(“创建的加载程序”);
返回新的AsyncTaskLoader(getActivity()){
@凌驾
公共列表加载背景(){
返回getResults();
}
};
}
@凌驾
public void onLoadFinished(加载程序,
列表数据){
logger.debug(“加载程序已完成”);
如果(数据!=null){
adapter=新的CustomListAdapter(getActivity());
list.setAdapter(适配器);
adapter.addAll(数据);
}
}
@凌驾
公共void onLoaderReset(加载器){
}
我遇到的问题是,对于第一个页面,一切都按预期工作,但是对于后续页面,我看到onCreateLoader调用完成,AsyncTaskLoader的loadInBackground方法被调用,但是onLoadFinished没有被调用,因此现在结果被传递

我正在使用Android支持库


有人知道我做错了什么吗?

所以我刚刚遇到了这个问题,看起来你和我做的完全一样。看起来,如果您的加载程序都使用相同的id(在您的示例0中),那么如果一个页面加载比另一个页面加载花费的时间更长,则它们将在分页时重新启动并跺脚。希望这仍然可以是相关的人遇到这个

Bug从修订版13开始,此帮助: