Android SQLite 数据库和应用更新

标签 android sqlite android-contentprovider android-sqlite

我开发了一个安卓应用并发布了 1.0 版。该应用程序包含带有 5 个表的 SQLite 本地数据库。

现在我们计划发布 2.0 版本同时更新 1.0 版本的用户。在 2.0 版中,我们在之前的 5 个表中增加了两个表,现在是 7 个表。

现在我的问题是,1.0版本的用户在本地数据库中都有一些数据,如果他更新到2.0版本,之前的数据会丢失吗?如果是这样。那么替代方法是什么?

最佳答案

您应该将所有更改放在您可以使用此代码的 onUpgrade 方法中:

@Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    String sql = "ALTER TABLE " + TABLE_SECRET + " ADD COLUMN " +
     "name_of_column_to_be_added" + " INTEGER";
    db.execSQL(sql);        
}        

这会在您当前的数据库中添加一列。您的数据库不会丢失数据。提醒:在执行 getWriteableDatabase 或 getReadableDatabase 并且您的数据库版本与旧版本不同时,将调用 onUpgrade。

关于Android SQLite 数据库和应用更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16890774/

相关文章:

android - 什么Layout最好根据坐标来设置它的inner views

java - Android SQLite,从特定行更新特定字段

android - 致命异常 : ThumbnailManager-1 while sharing images to Intent

android 联系人提供程序 : how to set phone number primary

Android ContentProvider读写权限

android - Google 云端硬盘导入 Google 文档

android - 我可以在 android 上以编程方式播放广播吗?

java - 在 Android 中使用显式 Intent 进行文本比较

php - 基于 Web 的 Android 应用程序 (SQLite) 和网站数据库 (SQL) 同步解决方案

python - 使用 SQL SELECT 语句将 SQLite 数据库转换为 Python 字典