FragmentManager.popBackStack()后光标未更新

时间:2014-03-09 06:16:36

标签: android android-contentprovider android-cursoradapter android-loadermanager

我实现了ListFragment,它使用了CursorAdapter的实现并实现了LoaderCallbacks<Cursor>。当用户点击此列表中的某个项目时,用户将被带到另一个fragment。在这里,用户可以选择删除点击的特定项目。

现在在deleteFooItem()我使用了我执行ContentProvider的删除操作。具体如下:

@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
    int uriType = sURIMatcher.match(uri);
    SQLiteDatabase sqlDB = sqlitehelper.getWritableDatabase();
    int rowsDeleted = sqlDB.delete(TJItemTable.TABLE_NAME, selection, selectionArgs);
    getContext().getContentResolver().notifyChange(uri, null);
    return rowsDeleted;
} 

这种安排很好。

但删除发生后,我致电fragmentManager.popBackStack()返回原来的ListFragment。此列表仍显示我刚刚删除的旧数据。在调试时,onLoadFinished(Loader<Cursor> loader, Cursor cursor)会被调用,但是这会将光标与仍具有旧信息的光标交换。

如果我关闭应用并再次打开它,则列表不会显示已删除的信息。

我做错了什么?

0 个答案:

没有答案