Есть ли способ экспортировать доступную для записи базу данных?
Из вашего кода, если он работает, то это то, что вы делаете.Предполагается также, что вы гарантируете, что база данных не используется в другом месте и что она была закрыта.
То есть база данных SQLite представляет собой один файл, скопируйте этот файл и затем вы сможете использовать егоБаза данных в любом месте, где у вас есть SQLite.Записываемая / читаемая концепция (то есть getWritableDatabase
v getReadableDatabase
) является одной из наиболее распространенных заблуждений.Последний в большинстве случаев получит доступную для записи базу данных, он вернет базу данных только для чтения, если база данных также не может быть записана, например (полный диск).Согласно: -
Создать и / или открыть базу данных.Это будет тот же объект, возвращаемый функцией getWritableDatabase (), если для какой-либо проблемы, например, для полного диска, база данных должна быть открыта только для чтения.В этом случае будет доступен объект базы данных только для чтения.Если проблема устранена, будущий вызов getWritableDatabase () может завершиться успешно, и в этом случае доступный только для чтения объект базы данных будет закрыт, а объект чтения / записи будет возвращен в будущем.
getReadableDatabase
Исключения / соображения могут быть: -
- Если база данных была зашифрована, в этом случае вы будете использовать код шифрования/ extension вместе с ключом.
Если вы используете временные таблицы в памяти, в этом случае И если вам нужны эти временные таблицы в памяти, вы можете создать копию базы данных, но изменитьв памяти / временно, чтобы быть постоянным.
- SQLite имеет API резервного копирования, который делает это.Однако я не верю, что API-интерфейс SQLite в Android реализует API резервного копирования (поэтому попытка использовать его может оказаться более сложной, чем реализация метода копирования).
на Android, в базе данных будет дополнительная таблица с именем android_metadata , она просто хранит локаль и может быть проигнорирована в другом месте.