Okay, I've worked out the answer to this. There is no need for a CursorAdapter or a ContentObserver. The steps are as follows: 1/ Create Fragment-derived class (in my case derived from MapFragment) 2/ Implement LoaderCallbacks on this class 3/ Call getLoaderManager.initLoader() in onCreate() override of this class 4/ Create a new CursorLoader() in your LoaderCallbacks.onCreateLoader() override 5/ In LoaderCallbacks.onLoadFinished(), call code to iterate round the cursor and populate your view. But DON'T CLOSE THE CURSOR OTHERWISE YOU WON'T RECEIVE FURTHER UPDATES!!!
My problem arose from adapting some sample code in which the cursor.Close() was called once the list had been populated. I guess good practice is to save the cursor in a private data member and close it when LoaderCallbacks.onLoaderReset() is called.