gpt4 book ai didi

android - 如何将数据库更改更新到已安装的应用程序

转载 作者:行者123 更新时间:2023-11-30 03:50:29 26 4
gpt4 key购买 nike

如果我对数据库进行任何更改,例如在我的 android 应用程序中添加新列。如果我已经在手机上安装了它。当我在移动设备上重新安装/更新该应用程序时,它不会更新数据库更改。

我的数据库代码是:

package com.screenmagic.smsmagicmobileapp;

import java.text.SimpleDateFormat;
import java.util.Date;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;


public class DatabaseHandler extends SQLiteOpenHelper {


private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "Test";


public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.d(TAG, "onCreate OF DatabaseHandler");

db.execSQL("DROP TABLE IF EXISTS history");
String CREATE_SMS_HISTORY_TABLE = "CREATE TABLE history("+
"id INTEGER PRIMARY KEY AUTOINCREMENT, mobileNumber TEXT, smsText TEXT)";
Log.d("Insert: ", "Table create query:: "+ CREATE_SMS_HISTORY_TABLE);
db.execSQL(CREATE_SMS_HISTORY_TABLE);
Log.d("Insert: ", "Table created ..");

}

// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS sms_history");
onCreate(db);
}


}

最佳答案

只需使用 onUpgrade(作为覆盖)方法,您就可以将数据库升级放在那里。这样,当应用程序已经安装时,现有数据都不会被吹走。

并确保您不会像当前正在做的那样删除表格:

db.execSQL("DROP TABLE IF EXISTS sms_history");

参见方法引用 here以及有关如何实现它的视频 here

关于android - 如何将数据库更改更新到已安装的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14235188/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com