Вставка базы данных Android в начале - PullRequest
1 голос
/ 22 декабря 2011

Я хочу вставить необходимые данные для моего приложения в начале, и я буду использовать эти данные. И я хочу вставить один раз, и не должно быть дубликатов. Поэтому в «onCreate» я делаю так: если количество строк в таблице (например, учащегося и т. Д.) Равно 0, я вставляю учеников. Я не думаю, что это лучший способ сделать это. Поэтому я хочу узнать, есть ли лучший способ.

1 Ответ

5 голосов
/ 22 декабря 2011

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

В качестве альтернативы, если вы реализуете SQLiteOpenHelper для своей базы данных, все, что вы вставите во время SQLiteOpenHelper.onCreate(SQLiteDatabase), будет вставлено только при первом запуске вашего приложения или когда кто-то очистит все данные вашего приложения. (что более или менее возвращает вас к новой установке в любом случае). Суперкласс SQLiteOpenHelper знает, следует ли запускать код создания при вызове одного из методов getWritableDatabase() или getReadOnlyDatabase() для получения ссылки на базу данных.

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

...