gpt4 book ai didi

android - 应用程序升级后丢失 SQLite 数据库数据 - 怎么会这样?

转载 作者:太空狗 更新时间:2023-10-29 15:22:17 56 4
gpt4 key购买 nike

在我的应用程序中,我将数据存储在 SQLite 数据库中。有时我会发布新版本的应用程序,但从不更改数据库架构。我的一位客户向我报告说,每次他升级应用程序时都会丢失所有数据。

我已经彻底调查了我的代码,但找不到用户丢失数据的可能性。

基本上我与 SQLite 数据库处理相关的代码如下所示:

public final class Storage
{
private SQLiteDatabase database;
public static final String DATABASE_NAME="my.db"; //db name
/**
* database tables creation scripts
*/
private static final String DATA1_CREATE="create table if not exists ...";
private static final String DATA2_CREATE="create table if not exists ...";
private static final String IDX_DATA1_CREATE="create index if not exists...";
private static final String IDX_DATA2_CREATE="create index if not exists ...";

/**
* Constructs Storage object and if necessary creates tables
* @param context application environment (Android context)
*/
public Storage(Context context)
{
database=context.openOrCreateDatabase(DATABASE_NAME, Context.MODE_WORLD_WRITEABLE, null);
database.beginTransaction();
try
{
database.execSQL(DATA1_CREATE);
database.execSQL(IDX_DATA1_CREATE);
database.execSQL(DATA2_CREATE);
database.execSQL(IDX_DATA2_CREATE);
database.setTransactionSuccessful();
}
catch(Exception e)
{
Log.d(TAG, "Can't create database", e);
database=null;
return;
}
database.endTransaction();
}

public synchronized SQLiteDatabase getDatabase()
{
return database;
}

public void close()
{
if(database!=null)
database.close();
}
}

我在我的代码中看到的唯一缺点是我没有扩展类 SQLiteOpenHelper - 这会不会是潜在的问题并导致在应用程序升级期间丢失数据?

最佳答案

创建sqlitehelper 类并在onupgrade() 中编写必要的代码

关于android - 应用程序升级后丢失 SQLite 数据库数据 - 怎么会这样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6421381/

56 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com