在我的应用程序中,我有一个使用DBHelper类中的DB查询创建的数据库。我希望onUpgrade语句在安装apk时运行,因为用户可能会松开并安装相同的应用程序。
在这种情况下,它成为设备上的第一个安装,并且onUpgrade不会运行,导致应用程序崩溃。
如果新应用在之前的应用上更新,它的效果非常好。
我如何重新获得这个?这种情况的解决方案是什么?
请帮忙!!在此先感谢!!
这是我的DbHelper.java
public class Dbhelper extends SQLiteOpenHelper {
public Dbhelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL(TABLE_CREATE_IMAGE);
database.execSQL(TABLE_CREATE_ATTEDANCE);
database.execSQL(TABLE_CREATE_STOCK);
}
@Override
public void onUpgrade(SQLiteDatabase database, int oldVersion,
int newVersion) {
Log.e("","upgrade ");
database.execSQL("ALTER TABLE stock ADD db_stock_id varchar(100)");//1.1
//
}
public void dropandcreate(SQLiteDatabase database)
{
database.execSQL("DROP TABLE IF EXISTS image");
database.execSQL("DROP TABLE IF EXISTS attendance");
database.execSQL("DROP TABLE IF EXISTS stock");
onCreate(database);
}
}
答案 0 :(得分:2)
自己打电话:
@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL(TABLE_CREATE_IMAGE);
database.execSQL(TABLE_CREATE_ATTEDANCE);
database.execSQL(TABLE_CREATE_STOCK);
onUpgrade(database, VERSION);
}