Как часто запускаются getWritableDatabase () и getReadableDatabase ()? - PullRequest
3 голосов
/ 18 июня 2010

Я пишу сервис, контент-провайдера и несколько приложений. Служба записывает новые данные в базу данных SQLite контент-провайдера каждые 5 минут или более, а также при вводе данных пользователем и предназначена для постоянной работы в фоновом режиме. При запуске приложение будет отображать данные, извлеченные из провайдера контента, и будет обновляться всякий раз, когда служба помещает больше данных в базу данных провайдера контента.

Учитывая, что Служба вставляет в базу данных только один раз каждые пять минут, когда подходящее время для вызова SQLiteOpenHelper's getWritableDatabase() / getReadableDatabase()? Это на onCreate() провайдера контента, или я должен запускать его каждый раз, когда есть insert() и закрывать его в конце insert()? Данные, вставляемые каждые 5 минут, будут содержать несколько вставок.

1 Ответ

2 голосов
/ 18 июня 2010

Что касается вашего конкретного вопроса, если вы собираетесь использовать ContentProvider таким образом, вы можете пойти по шаблону open-and-close-each-insert.В ContentProvider нет хука onDestroy(), поэтому нет подходящего времени для закрытия базы данных.С более частыми / случайными шаблонами доступа вам просто придется с этим жить.В вашем случае вы также можете закрыть его.

При этом, мне не ясно, почему вы беспокоитесь о ContentProvider во-первых.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...