标签:android sqlite android-activity
我在android中的SQLite数据库中遇到了问题.
在我的SQLiteOpenHelper类的onCreate(SQLiteDatabase db)方法中,我正在创建表.现在我已将此应用程序上传到Playstore.现在我想我在这些表格中需要多一个coloumn.
如果我在playstore中放置应用程序的更新(在onCreate()方法中使用新查询),下次将调用OnUpgrade()方法,因此不会再次创建表.
所以请告诉我在重新安装或更新应用程序时有没有办法删除SQLite数据库..或者在重新安装之前删除整个应用程序?
解决方法:
1.关于onCreate()和onUpdate()
只要新安装了应用程序,就会调用onCreate(..).每当升级和启动应用程序且数据库版本不同时,都会调用onUpgrade.
你需要一个像这样的构造函数:
2.增加db版本
MyOpenHelper(Context context) {
super(context, "dbname", null, 2);
}
重要信息:单独增加应用程序版本不足以调用onUpgrade.
3.不要忘记你的新用户!
别忘了添加
database.execSQL(DATABASE_CREATE_color);
您的onCreate()方法或新安装的应用程序将缺少该表.
4.如何处理多个数据库随时间的变化
当您有连续的应用程序升级,其中一些有数据库升级时,您希望确保检查oldVersion:
onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch(oldVersion) {
case 1:
db.execSQL(DATABASE_CREATE_color);
// we want both updates, so no break statement here...
case 2:
db.execSQL(DATABASE_CREATE_someothertable);
}
}
这样,当用户从版本1升级到版本3时,他们将获得两个更新.当用户从版本2升级到3时,他们只会获得版本3更新…毕竟,每次发布更新时,都不能指望100%的用户群升级.有时他们会跳过更新或12
标签:android,sqlite,android-activity 来源: https://codeday.me/bug/20190713/1450415.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。