Я действительно борюсь с использованием SqlLite в моем приложении;
Я установил вспомогательный класс базы данных, который расширяется от SQLiteOpenHelper
public class DatabaseHelper extends SQLiteOpenHelper {
В OnCreate я создаю около 6 таблиц:
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE myTestTable (Id INTEGER PRIMARY KEY , "
+ "info TEXT," +
+ "TopLeft TEXT")); <-- example insert
}
Когда мое приложение запускается, я анализирую некоторые xml и вводю данные в таблицу, проверил базу данных, все там, и мои таблицы созданы правильно.
Когда я иду, чтобы вызвать данные, они ушли!
У меня много разных запросов в моем классе dbhelper и по каждому виду деятельности, который я инициализирую, чтобы я мог получить доступ к своей функции в классе.
Я предполагаю, что это не способ сделать это, так как он снова запускает мое создание и стирает все мои таблицы (или, по крайней мере, так происходит, когда он работает, когда я проверяю БД после того, как попытался вызвать из нее данные) и пусто!
У меня сложилось впечатление, что oncreate запускался только один раз, но это, очевидно, не тот случай, так как кажется, что он каждый раз воссоздает мою БД и стирает мои данные!
Где вы должны инициализировать класс dbhelper и как остановить его, воссоздавая таблицы? Мне нужно, чтобы данные сохранялись даже после закрытия приложения!
Я в замешательстве!
Если это не имеет смысла, пожалуйста, задавайте конкретные вопросы о том, как я могу это уточнить!
UPDATE
Я нашел, что могу добавить
CREATE TABLE IF NOT EXISTS
Что останавливает воссоздание таблиц, но все равно кажется неправильным каждый раз вызывать oncreate ..