Android游标加载器获取错误的数据

时间:2015-09-24 15:20:49

标签: android android-cursorloader

我一直在平板电脑模式下玩我的应用程序 - 主要细节视图,片段试图看它是怎么回事,它似乎相当随机,它会用另一个加载器的数据调用一个加载器,导致崩溃和奇怪的数据返回。

我目前有4台装载机

  • DetailLoader - 从影片表
  • 加载主要影片详细信息
  • ReviewLoader - 加载评论表中的评论
  • YoutubeLoader - 从表中加载YouTube视频
  • 最喜欢的装载程序 - 加载最喜欢的条目,用于查看是否已收藏

麻烦是随机的,收藏夹将从电影请求中获取数据,反之亦然,或其他一些奇怪的组合。 如果我在电影之间快速切换,这种情况可能会更频繁发生

static final int DETAIL_LOADER=0;
static final int YOUTUBE_LOADER=1;
static final int REVIEW_LOADER=2;
static final int FAVORITE_LOADER=3;
public void onActivityCreated(Bundle savedInstanceState) {
    getLoaderManager().initLoader(DETAIL_LOADER,null,new DetailLoader());
    super.onActivityCreated(savedInstanceState);
}

然后在DetailLoader的{​​{1}}

OnLoadFinished

每个XLoader对象都是实现getLoaderManager().initLoader(YOUTUBE_LOADER, null, new YoutubeLoader()); getLoaderManager().initLoader(REVIEW_LOADER, null, new ReviewLoader()); getLoaderManager().initLoader(FAVORITE_LOADER,null,new FavoriteLoader());

的不同对象

1 个答案:

答案 0 :(得分:0)

我有一个非常类似的问题。通过添加" break解决它;"在我的onLoadFinished开关案例语句的末尾。

 public void onLoadFinished (Loader < Cursor > loader, Cursor data){

        switch (loader.getId()){
            case LOADER_1:
                mBinCursorAdapter.swapCursor(data);
                break;
            case LOADER_2:
                ((RoomCursorRecyclerAdapter) mRoomRecyclerView.getAdapter()).swapCursor(data);
                break;