Java 项目在无休止的列表视图中消失

Java 项目在无休止的列表视图中消失,java,android,listview,android-arrayadapter,asynctaskloader,Java,Android,Listview,Android Arrayadapter,Asynctaskloader,我正在使用AsyncTaskLoader将分页数据加载到ArrayAdapter中,但当我旋转设备时,所有以前获取的数据都将被清除,列表顶部现在将从我获取的最后一页开始 private int mPageNumber; @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (mPageNum

我正在使用
AsyncTaskLoader
将分页数据加载到
ArrayAdapter
中,但当我旋转设备时,所有以前获取的数据都将被清除,列表顶部现在将从我获取的最后一页开始

private int mPageNumber;

@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
        int totalItemCount) {
    if (mPageNumber >= firstVisibleItem + visibleItemCount) {
        mPageNumber++;
        getLoaderManager().restartLoader(0, null, this);
    }
}

我真的不明白为什么会发生这种情况,也不知道最好的处理方法。我应该缓存数据吗,真的有必要吗

如何在保存的实例状态下保存x个项目,将它们全部放回上次加载的项目的顶部,然后继续分页?这看起来并不是一个很好的解决方案。为什么不下载一个内容提供商的数据,并用该提供商的游标适配器创建listview呢?