3

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

    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。这些查询工作正常。什么会导致这个?任何帮助,将不胜感激。

4

1 回答 1

3

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

于 2013-05-30T16:04:26.007 回答