我在Android市场上发布了一个使用sqlite并显示数据的应用程序。我想知道我是否通过添加功能发送应用更新,我是否应该上传新数据库?当用户已经拥有我的应用程序,点击更新后会发生什么?数据库会自行更新吗?如果用户第一次下载我的应用程序,他们肯定会获得新的数据库内容......但现有用户呢?我想知道是否必须在程序中显式更新数据库
答案 0 :(得分:0)
为什么不通过代码创建sqlite数据库?这样,您的更新可以更新数据库上的SQL(更改列,添加行),而不会影响用户现有数据。
答案 1 :(得分:0)
如果要更改数据库的属性,那么在更新时会产生问题,如果数据库的属性相同则不会产生任何影响......
答案 2 :(得分:0)
您可以使用它支持版本和迁移机制的android.database.sqlite.SQLiteOpenHelper
类
答案 3 :(得分:0)
创建新版本时...如果更改数据库版本... 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?
}
}