重新启动CursorLoader不会反映数据库删除

时间:2012-06-04 14:21:49

标签: android database android-cursorloader

我正在使用CursorLoader来跟踪数据库中的数据。可以使用

删除此数据库
Context.deleteDatabase(databaseName);

删除后,我用

重新启动加载程序
getLoaderManager().restartLoader(LOADER_ID, null, this);

现在我收到回电

onLoadFinished(Loader<Cursor> loader, Cursor data)

它并不反映数据已消失。我得到的数据和以前一样。

我做的事情在概念上是错误的吗?

1 个答案:

答案 0 :(得分:2)

LoaderManager正在尝试智能并重新使用加载器。这是一个解决不同加载程序错误的解决方法,但我认为它适用于此:

    Loader<Object> loader = getLoaderManager().getLoader(0);
    if (loader != null && ! loader.isReset()) {
        getLoaderManager().restartLoader(0, null, mItemsListener);
    } else {
        getLoaderManager().initLoader(0, null, mItemsListener);
    }