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 に答える