androidandroid-contentproviderandroid-cursorloaderandroid-loadermanager

CursorLoader not updating after data change


I have created a small application, trying to understand the functionality of the LoaderManager and CursorLoader-classes.

I have implemented LoaderCallbacks<Cursor> on my FragmentActivity-class and everything works fine, except the fact that when I update my data via ContentResolver.update() or ContentResolver.insert()-methods, onLoadFinished() is not called and as a result my data doesn't update.

I have a custom ContentProvider and I am wondering if the problem is in my ContentProvider not notifying that the data changed or something else.


Solution

  • Did you call setNotificationUri(ContentResolver cr, Uri uri) on the Cursor before returning it in ContentProvider.query()?

    And did you call getContext().getContentResolver().notifyChange(uri, null) in the 'insert' method of your ContentProvider?

    EDIT:

    To get a ContentResolver call getContext().getContentResolver() in your ContentProvider.