数据更改后CursorLoader没有更新

时间:2011-10-27 11:11:30

标签: android android-contentprovider android-cursorloader android-loadermanager

我创建了一个小应用程序,试图了解LoaderManagerCursorLoader类的功能。

我已在我的LoaderCallbacks<Cursor>课程中实施了FragmentActivity,一切正常,但我通过ContentResolver.update()ContentResolver.insert() - 方法更新数据的事实除外{ {1}}未被调用,因此我的数据不会更新。

我有一个自定义的ContentProvider,我想知道问题出在我的ContentProvider中,而不是通知数据已更改或其他内容。

2 个答案:

答案 0 :(得分:104)

setNotificationUri(ContentResolver cr, Uri uri)返回Cursor之前,您是否已ContentProvider.query()致电{1}}?

您是否在getContext().getContentResolver().notifyChange(uri, null)的'insert'方法中致电ContentProvider了?

编辑:

要在ContentResolver中获得getContext().getContentResolver()来电ContentProvider

答案 1 :(得分:4)

另外检查你是否调用了某个cursor.close(),因为在这种情况下你取消注册由CursorLoader注册的内容观察者。并且光标关闭由CursorLoader管理。