【问题标题】:Android Cursor Loader only works onceAndroid Cursor Loader 只能工作一次
【发布时间】:2013-05-27 15:53:10
【问题描述】:

我正在使用游标加载器从我的内容提供者加载数据,但并不总能获得结果。在我最初调用内容加载器时,它会返回正确的结果:

    getSupportLoaderManager().restartLoader(
                LOADER_LOCATION_INFO, null, this);

但是,当我再次运行此查询(使用上面相同的代码)时,我没有得到任何结果。加载器回调没有被调用。

public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
    switch(arg0){
    case (LOADER_LOCATION_INFO):
        return new CursorLoader(this, 
                               //my query

    }
    return null;
}

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor arg2) {
    switch (loader.getId()) {
    case (MY_CASE):
        doSomething(arg2);
        break;
    }   
}

@Override
public void onLoaderReset(Loader<Cursor> arg0) {
    // TODO Auto-generated method stub

};

我不知道这是否重要,但我也在此活动中的片段中调用 loaderManager。这些查询工作正常。 什么会导致这个?任何帮助将不胜感激。

【问题讨论】:

    标签: android android-loadermanager android-cursorloader


    【解决方案1】:

    我的问题在于加载程序 ID。我在几个片段和父活动中有 LoaderCallbacks。我使用静态最终整数声明每个片段/活动中的 ID。我使用的是相同的 ID。我将所有 ID 移至父活动并使其唯一。这解决了问题。

    【讨论】:

      猜你喜欢
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-28
      • 1970-01-01
      • 1970-01-01
      • 2020-09-06
      • 1970-01-01
      相关资源
      最近更新 更多