Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQLite数据库在升级应用程序时添加新表_Android_Android Sqlite - Fatal编程技术网

Android SQLite数据库在升级应用程序时添加新表

Android SQLite数据库在升级应用程序时添加新表,android,android-sqlite,Android,Android Sqlite,我向我的应用程序数据库中再添加一个表。 但是,如果我升级应用程序而不清除其数据,则新表似乎不会自动添加。 因此,一些需要从新表检索数据的代码失败。 是否可以在应用程序升级时自动添加新表?是的,有一种升级方法 在此处添加代码,如果您的版本高于上一版本,则增加数据库版本 onUpgrade被激发,您的代码将执行您为添加表而编写的代码 样品 还记得在super call中增加版本代码吗 class Database extends SQLiteOpenHelper { public Database

我向我的应用程序数据库中再添加一个表。
但是,如果我升级应用程序而不清除其数据,则新表似乎不会自动添加。
因此,一些需要从新表检索数据的代码失败。


是否可以在应用程序升级时自动添加新表?

是的,有一种升级方法

在此处添加代码,如果您的版本高于上一版本,则增加数据库版本 onUpgrade被激发,您的代码将执行您为添加表而编写的代码

样品 还记得在super call中增加版本代码吗

class Database extends SQLiteOpenHelper
{
public Database(Context _myContext)
    {
    super(_myContext, DB_NAME, null, DB_VERSION_CODE);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
    {
        if(oldVersion > newVersion)
        {
            // create a new table what you want to create you can also check the existence of the table
        }
    }
}

请实现该方法。

有一个Android helper类,用于使用应用程序的原始资产文件管理数据库创建和版本管理

看看这个:


@user538565在类构造函数中,它扩展了sqliteHelper检查更新