Если вы хотите предварительно заполнить базу данных (SQLite) на Android, это не так просто, как можно подумать.
Итак, я нашел этот учебник, который часто упоминается здесь также в разделе "Переполнение стека".
Но мне не очень нравится такой способ предварительного заполнения базы данных, так как вы берете управление из обработчика базы данных и сами создаете файлы. Я бы предпочел не касаться файловой системы и позволить обработчику базы данных делать все сам по себе.
Итак, я думал, что можно создать базу данных в обработчике базы данных onCreate(), как обычно, но затем загрузить файл (.sql) из /assets, который содержит инструкции для заполнения значений:
INSERT INTO testTable (name, pet) VALUES ('Mike', 'Tiger');
INSERT INTO testTable (name, pet) VALUES ('Tom', 'Cat');
...
Но вызов execSQL() в обработчике onCreate() не работает. Кажется, что файл /assets не должен иметь более 1 МБ, а execSQL() выполняет только первый оператор (Mike - Tiger).
Что бы вы сделали, предварительно заполнив базу данных?