Размер базы данных Android не уменьшится в HTC Thunderbolt - PullRequest
3 голосов
/ 24 мая 2011

обновление: файл db-wal - это то, что так велико.В чем причина и как я могу ограничить размер файла журнала sqlite?

Я использую SQLiteOpenHelper.Когда происходит onUpgrade, я удаляю каждую таблицу, которая существует для моего приложения.На дроиде, когда я смотрю на размер данных приложений с помощью приложения настроек, вы можете видеть, что размер данных уменьшается, как и должно быть.Но с HTC Thunderbolt размер данных не уменьшается.Что еще хуже, база данных Thunderbolt продолжает расти, когда вы снова начинаете использовать мое приложение.Похоже, что база данных всегда будет расти на Thunderbolt при обновлении версии базы данных.

Я проверил, что я использую только одну базу данных с тем же именем и что в базе данных были данные, прежде чем я отбросил таблицы.Я ожидаю увидеть такое же поведение на Молнии, как и на дроиде.Есть ли способ, которым я могу программно очистить все данные для устройства?Это не было бы идеально, но это было бы лучше, чем размер данных Thunderbolt всегда расти.

1 Ответ

1 голос
/ 02 июня 2011

Если вы используете SQLiteOpenHelper, вам нужно вызвать close, когда ваше приложение завершится. В документации API указано, что вам не нужно вызывать close для всех открытых им экземпляров SQLiteDatabase, но вы все равно должны вызывать close на Helper, поскольку он кэширует и отслеживает все открытые экземпляры SQLiteDatabase. Без вызова close файл wal будет продолжать расти для каждого отдельного экземпляра, возвращаемого getWriteableDatabase и getReadableDatabase.

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