Каков наилучший вариант для предварительной загрузки и поддержки статических данных в экземпляр SQLite в Android? - PullRequest
1 голос
/ 23 июля 2011

У меня есть приложение для Android, которое в основном представляет собой симулятор экзамена, оно будет загружено с вопросами и пользователь получит простой интерфейс с несколькими вариантами ответов.

Мой вопрос: каков наилучший способ предварительной загрузки или, по крайней мере, управления задачей предварительной загрузки данных в базу данных SQL?

Два варианта, которые я вижу сразу:

  1. Получить браузер SQLite, вручную вставлять каждую запись. Мне это не нравится, потому что это слишком "ковбой"
  2. Создайте некоторый служебный класс, который запускается один раз и вставляет кучу данных, мне это тоже не нравится, так как я не думаю, что жесткое кодирование загрузки вставок в файл класса является хорошей практикой.

Каков наилучший вариант (открыт для альтернативных предложений) для этой проблемы? Можно ли вставить скрипт вставки SQL, который загружается при запуске?

Данные будут статичными, если их нужно будет изменить, я опубликую новую версию приложения. Я ожидаю, что будет 200 ~ вопросов, поэтому у меня не будет масс вставок.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 23 июля 2011

Этот веб-сайт хорошо объясняет это:

http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

По сути, вы помещаете БД в папку ресурсов, а затем при первом запуске приложения БД копируется вправо.место, и вы можете использовать его.

Я думаю, что это дубликат этого вопроса: Как я могу встроить базу данных SQLite в приложение?

0 голосов
/ 23 июля 2011

Я сделал базу данных ковбойским способом только для массивов. Просто помог себе на вопросы с этим

BufferedWriter bufferedWriter = null;

            String filename = "queries.txt";
            File file = new File(filename);
            String a = "\"";
            try {

                file.createNewFile();
                bufferedWriter = new BufferedWriter(new FileWriter(filename));

                int b=1;
              for(int i=0;i<restLat.length;i++)
              {



                String temp="INSERT INTO table VALUES (                  );";


                bufferedWriter.write(temp);
                bufferedWriter.newLine();

                }
            } catch (FileNotFoundException ex) {
            } catch (IOException ex) {
                ex.printStackTrace();
            } finally {

                try {
                    if (bufferedWriter != null) {
                        bufferedWriter.flush();
                        bufferedWriter.close();
                    }
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
...