В моем приложении я должен реализовать некоторый интерфейс и службу синхронизации.Он работает в фоновом режиме и обновляет данные.Служба синхронизации не очень проста, она использует многопоточность.
Итак, вот моя история: когда я начинал разработку этого приложения, я ничего не знал о sqlite, поэтому я просто не использовал синхронизацию потоков вДжава.Результат: я получил много исключений, таких как «SQLiteException: база данных заблокирована: BEGIN EXCLUSIVE;»
Затем я синхронизировал все свои транзакции с обычным блоком Java synchronized () {}.Все стало намного лучше.Но я использовал Cursors для реализации CursorAdapter для моих списков.Поэтому иногда я получал одно и то же «SQLiteException: база данных заблокирована: BEGIN EXCLUSIVE;»
Я закончил создание небольшой поточно-безопасной утилиты sqlite, которая обрабатывает все эти поточно-ориентированные вещи.Кроме того, я должен использовать что-то вроде ArrayAdapter (прочитать все данные из курсора и закрыть его после чтения, а также синхронизировать этот блок) для моего пользовательского интерфейса.Итак, он работает нормально
Но мне не нравится такой способ обработки пользовательского интерфейса, потому что пользовательский интерфейс стал намного медленнее с этим решением - чтение некоторого количества данных из курсора довольно быстро, но медленнее, чем использованиеCursorAdapter
Итак, кто получил решение для этого вопроса?Спасибо