public DBHelper(Context context) {
     super(context, DB_NAME, null, 3);
}
这是我写的DBHelper的类的构造方法  上面我写的version是3    之前没更新数据库的时候是2现在的问题是我每次打开程序都会执行@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {}
这个方法 我用re打开我的程序的数据   查看我的db文件  发现更改了数据    但是版本号没更改  因为我调试  每次都执行onUpgrade 这个方法  而且没有报错 现在的问题是:
1.为什么执行onUpgrade成功那个后没有更改db文件的版本号?
2.为什么我卸载了程序重新装上还是会执行onUpgrade方法?
在onUpgrade  这个方法中我是有这个判断的 if(arg1 == 2) {  }    也就是说这个2不知道从哪里来

解决方案 »

  1.   

    在onUpgrade()方法中,要先删掉已有的表,然后新建表。最后调用onCreate()方法。
      

  2.   

    OK了  问题原因找到了   原来我写了两个DBHelper类    一个把version由2改成了3   另一个忘记改了  所以导致后面的一系列问题   感谢参与回答的
      

  3.   


    我一般把db version 放在app定义常量的文件中,这样就不会出现这样的问题