Обновление приложения - Android - PullRequest
2 голосов
/ 06 апреля 2011

Я работаю над приложением для Android.Мое приложение содержит локальную базу данных, расположенную в папке / assests приложения.Когда пользователь устанавливает приложение, оно копирует базу данных, чтобы использовать его.Затем пользователь может добавлять в него элементы.

Мой вопрос: если я выпущу обновление для своего приложения, удалит ли он данные (удалив скопированную базу данных), удалив, таким образом, изменения пользователя в базе данных (посколькуприложение снова скопирует базу данных из папки активов)?

Ответы [ 3 ]

0 голосов
/ 06 апреля 2011

Вы должны переопределить метод onUpgrade в SQLiteOpenHelper:

     /*
     * (non-Javadoc)
     * 
     * @see
     * android.database.sqlite.SQLiteOpenHelper#onCreate(android.database.sqlite
     * .SQLiteDatabase)
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        // CREATE TABLE teas (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT
        // NULL, brew_time INTEGER);
        String sql = "CREATE TABLE " + TABLE_NAME + " (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + NAME + " TEXT NOT NULL, " + BREW_TIME + " INTEGER" + ");";
        db.execSQL(sql);
    }

    /*
     * (non-Javadoc)
     * 
     * @see
     * android.database.sqlite.SQLiteOpenHelper#onUpgrade(android.database.sqlite
     * .SQLiteDatabase, int, int)
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        onCreate(db);
    }
0 голосов
/ 06 апреля 2011

Нет.Если пользователь обновляет приложение (не удаляя его - в этом случае оно будет удалено), а база данных уже существует, Android не просто удалит ее (она может содержать важную информацию!).1003 * метод вашего SQLiteOpenHelper будет вызван, и вам решать, хотите ли вы очистить данные или сохранить их.

0 голосов
/ 06 апреля 2011

Это полностью зависит от того, как вы копируете его. Вы всегда копируете это, не проверяя, существует ли оно уже? Тогда да, это, вероятно, будет. Вы действительно должны показать нам некоторый код, хотя, чтобы быть уверенным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...