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

Укажите максимальный размер sqlite db для моего приложения. Как обрабатывать полное исключение db

Меня спросили в интервью, как мы можем установить максимальный размер для sqlite db для нашего приложения для Android. И как мы можем справиться, когда достигнут максимальный размер?

РЕДАКТИРОВАТЬ: Марина Линн ниже ответ кажется приемлемой для этого вопроса. Но есть ли какие-то слушатели, которые срабатывают, когда размер db достигает предела, указанного нами? (Или что-то вроде этого)

4b9b3361

Ответ 1

Во-первых, чтобы установить максимальный размер базы данных, используйте .setMaximumSize(), как указано в предыдущем ответе.

Во-вторых, Android выдает SQLiteFullException, если размер файла базы данных превышает максимальное количество страниц *. SQLiteFullException является RuntimeException. Если вы хотите обработать его и отправить соответствующий ответ, вы сделаете что-то вроде:

try {
     getContentResolver().update(myEntity.CONTENT_URI, values, where, null);
} catch (SQLiteFullException e) {
    Log.w(TAG, "Exception when updating ...", e);
}

Ответ 2

Несмотря на то, что размер базы данных, кроме доступного хранилища, не ограничен, вы можете установить максимальный размер базы данных до SQLiteDatabase.setMaximumSize(). Если вы достигли предела, вам нужно сжать свою базу данных. Или вы можете переместить вашу базу данных из внутренней памяти на внешнее хранилище, возможно, с большим свободным пространством и увеличить максимальный размер базы данных. Но тяжелые базы данных приводят к плохому пользовательскому опыту, поэтому второй вариант рассматривает теоретику. Помните, что мы находимся в мобильной среде, а не на выделенном сервере базы данных.

Ответ 3

Просьба принять это к сведению SQLiteFullException будет выброшено не только тогда, когда ваша база данных достигнет своего собственного предела, но также и в ситуации, когда в файловом хранилище нет свободного места. Если вы хотите обработать исключение SQLiteFull, вам также необходимо проверить свободное место на устройстве. если на устройстве не хватает места, вам нужно указать пользователю очистить устройство от неиспользуемых данных.