[英]Updating SQLite database when releasing new version of the android app on the store
[英]Android SQLite - new database with another app version
我有一个应用程序,使用的是我提供的SQLite数据库,因此它是固定的,用户将不会更新数据库中的任何内容。 该数据库仅显示结果。
问题是-我仅在首次运行该应用时以编程方式创建该数据库:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if(!prefs.getBoolean("firstTime", false)) {
final DatabaseHelper myDb;
myDb = new DatabaseHelper(this);
myDb.deltab();
myDb.insertData("Josh","Smith","012345678","something","something","something");myDb.insertData("Josh","Smith","012345678","something","something","something"); }
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime",true);
editor.apply();
首先,我放下该表(以确保它会从头开始创建它),然后创建它并插入数据。
这在第一次运行应用程序时效果很好。
但是,如果将来我需要在该表中添加更多数据,或者在下一个应用程序版本中更改任何现有数据,该怎么办?
如果用户下载该应用程序的新版本,则firstTime条件将不会运行,因为他已经在升级旧版本之前启动了旧应用程序,并且通过升级版本也不会重置共享首选项。
看起来您已经在使用SQLiteOpenHelper
来管理数据库(在DatabaseHelper
猜测)。 这使事情变得容易。 您可以使用它来满足您的需求。
不必要地丢失SharedPreferences
首次运行检查。 只需在助手onCreate()
设置数据库即可。 如果数据库文件在设备中不存在,则它将运行一次,即“首次运行”。
要从旧版本更新到新版本,请提高要提供给SQLiteOpenHelper
构造函数的数据库版本,并在onUpgrade()
数据更改。 如果存在具有旧版本号的数据库文件,它将运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.