如何在第一次安装时运行onUpgrade()语句?

时间:2015-02-23 05:57:29

标签: android sqlite

在我的应用程序中,我有一个使用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);
    }
}

1 个答案:

答案 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);
}