Подтвердить что ты не робот

Управление соединениями SQLite на Android

У меня есть (надеюсь) быстрый вопрос относительно обработки соединений базы данных SQLite в Android. У меня есть приложение, которое составлено, естественно, из нескольких видов деятельности. У меня нет проблем с созданием/обновлением/запросом базы данных, так как я создал отдельный выделенный класс для работы с SQLiteOpenHelper и т.д.

Мой вопрос заключается в следующем: поскольку эти действия все используют эту же базу данных, обычно ли это выполняется как один, статический член или каждое действие имеет собственное соединение? Конечно, моя забота - это затраты на повторное подключение к базе данных в каждом мероприятии.

Или, по-другому, есть ли причина не просто хранить экземпляр singleton?

Мне также интересно, если что-то происходит за кулисами, подобным пулу соединений .NET, чтобы снизить затраты на открытие соединений.

Спасибо заранее!

4b9b3361

Ответ 1

Открытие соединения в SQLite составляет около 0,2 мс.

Лучшая практика говорит нам открывать и закрывать соединение каждый раз, когда нам это нужно.

Ответ 2

Просто используйте SQLiteOpenHelper.getReadableDatabase() и SQLiteOpenHelper.getWriteableDatabase() - Android будет управлять и кэшировать соединение, поэтому вам не нужно.

Фактически, обратитесь к официальной документации Google Использование баз данных:

Чтобы написать и прочитать с база данных, вызов getWritableDatabase() и getReadableDatabase(), соответственно. Они оба возвращают SQLiteDatabase