У меня есть ListView в ListActivity, который привязан к некоторым данным.У меня есть провайдер контента, который предоставляет данные.
ListActivity получает данные путем запроса распознавателя контента:
Uri uri = Uri.parse("content://my.provider.DocumentProvider/mystuff");
contentCursor = this.getContentResolver().query(uri, null, null, null, null);
Так что теперь у действия есть курсор.Он создает адаптер и присоединяет его к списку:
ListAdapter adapter = new DocumentListCursorAdapter(this, R.layout.main_row_layout, contentCursor, new String[] { "titleColumn" }, new int[] { titleColumnIndex });
setListAdapter(adapter);
Это отлично работает;список показывает данные в курсоре.
Но теперь у поставщика контента появились новые данные.Я хочу, чтобы список обновлялся для отображения новых данных.
Примеры, которые я видел, включают вызов адаптера notifyDataSetChanged, но мне кажется, что это нарушает разделение между поставщиком контента и списком,который потребляет контент.
Нужно ли поставщику контента знать, какие адаптеры подключены к курсору, чтобы он мог вызвать их метод notifyDataSetChanged?Или есть лучший способ не видеть эти две вещи соединенными таким образом.