4

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

Context.deleteDatabase(databaseName);

删除后我重新启动加载器

getLoaderManager().restartLoader(LOADER_ID, null, this);

现在当我收到回调

onLoadFinished(Loader<Cursor> loader, Cursor data)

它并不反映数据已经消失。我得到与以前相同的数据。

我在做一些概念上的错误吗?

4

1 回答 1

2

LoaderManager 试图变得聪明并重用加载器。这是针对不同加载程序错误的解决方法,但我认为它可以解决这个问题:

    Loader<Object> loader = getLoaderManager().getLoader(0);
    if (loader != null && ! loader.isReset()) {
        getLoaderManager().restartLoader(0, null, mItemsListener);
    } else {
        getLoaderManager().initLoader(0, null, mItemsListener);
    }
于 2012-12-05T18:47:41.783 回答