Я смотрю видео 2010 I/O в этом разделе, и у меня есть несколько вопросов, чтобы убедиться, что я правильно понимаю.Модели баз данных и веб-сервисов
Google I/O 2010 - Android REST client applications
Пожалуйста, обратите внимание, у меня есть очень ограниченное понимание CursorAdapters
прямо сейчас мое приложение только имеет слой UI. Я создал объект под названием DbAdapter, используя некоторые обучающие программы Google, чтобы создать небольшую базу данных и таблицу в этой базе данных.
Я создал класс, который я вызываю DataBroker (расширяя ContentProvider), чтобы управлять извлечением данных из базы данных и вызова веб-служб для обновления данных.
Сценарии:
1) Предположим, я хочу, чтобы отобразить список элементов в моем ListActivity. Правильно ли я предполагаю, что я напишу функцию в своем DataBroker, которая создает курсор в таблице в моей базе данных, которая содержит эти элементы, запускает службу, которая запускает поток, который вызывает веб-службу для получения дополнительных элементов, а затем возвращает курсор к моей теме пользовательского интерфейса? Выполнение этого, скорее всего, вернет курсор в мой поток пользовательского интерфейса до окончания веб-службы, но, полагаю, после того, как CursorAdapter имеет курсор, он автоматически покажет любые изменения, внесенные в эту таблицу базы данных, да?
2) Теперь у меня есть список элементов в моем ListView. Предположим, я даю пользователю некоторые функции для удаления элемента. Пользователь выполняет эту функцию. Он должен вызывать функцию в моем DataBroker, которая обновляет строку в моей базе данных, соответствующую этому элементу, устанавливая столбец состояния STATE_DELETING (который удалит строку из ListView, потому что курсор имеет условие, исключая это состояние), а затем отключить служба, которая запускает поток, который попадает на мою веб-службу, после чего удаляет строку в базе данных?
Кроме того, предположим, что у меня есть несколько видов деятельности. Имею ли я статический курсор для каждой операции со списком, захватывая этот курсор в onCreate, а если этот курсор пуст, ударив мой DataBroker?
Я полагаю, что попадание в базу данных также должно быть в службе. Так я должен иметь сервис (удаленная база данных), запускающая сервис (удаленный веб-сервис)? – Andrew
Думаю, я больше склоняюсь к модели ContentProvider. Я мог бы действительно использовать учебник по этому поводу с некоторыми фрагментами кода, если кто-то знает об этом. – Andrew