android应用程序更新时的SQLite更新
问题描述:
我有一个应用程序在android市场上发布,它使用sqlite并显示数据。我想知道如果我通过添加功能发送应用程序更新,是否应该上传新数据库?当用户已经拥有我的应用时,点击更新会发生什么?数据库会自行更新吗?如果用户第一次下载我的应用程序,他们肯定会得到新的数据库内容...但现有的用户呢?我想知道是否必须明确更新程序中的数据库android应用程序更新时的SQLite更新
答
当您创建新版本...如果你改变了数据库的版本...的onUpgrade功能将所有现有的用户运行:
public static final int dbVersion = 2;
protected static class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context) {
super(context, dbName, null, dbVersion);
}
@Override
public void onCreate(SQLiteDatabase db) {
//create tables
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//what do you want to do to existing users? maybe recreate?
}
}
答
为什么不通过代码创建sqlite数据库?这样,您的更新可以更新数据库上的SQL(更改列,添加行),而不会影响用户现有数据。
答
如果要更改数据库的属性然后更新用会造成问题,如果数据库的属性是相同的,那么它不会有任何效果...
答
您可以使用android.database.sqlite.SQLiteOpenHelper
类,它支持版本和迁移机制
我已经把我现在的分贝在Assets文件夹和我是retri从那里开始。所以我想知道如果我需要更换现有的数据库或当用户选择更新...它会以某种方式获取它? –