gpt4 book ai didi

android - 安装较新/现有版本的应用程序时,会创建 SQLite 数据库而不是重用

转载 作者:搜寻专家 更新时间:2023-11-01 07:40:05 24 4
gpt4 key购买 nike

安装更新/现有版本的应用程序时,会创建 SQLite 数据库而不是重新使用 - 现有数据库会消失。

我的类(class)是这样的


class HDDBAdapter {<br/>
int DB_LOCA_VERSION = 1;<br/>
HDDBOpenHelper hdHelper;



<pre><code> HDDBAdapter(_ctxt) {
hdHelper = new HDDBOpenHelper(_ctxt, "mydb.db", null, DB_LOCA_VERSION);
}

open() {
try {
db =hdHelper.getWritableDatabase();
}
catch ...
}


static class HDDBOpenHelper extends SQLiteopenHelper {
public HunyDewDBOpenHelper(Context ct, String n, CursorFactory cf, int v) {
super(ct, n, cf, vv);
}

private static final String DB_CREATE_BOX = "create table " + "mydb.db" + "("
+ ... + ");";

public void onCreate(SQLiteDatabase arg0) {
arg0.setVersion(DB_LOCA_VERSION);
arg0.execSQL(DB_CREATE_BOX);
}

public void onOpen(SQLiteDatabase db) {
// TODO Auto-generated method stub
super.onOpen(db);
}
</code></pre>

}

我第一次运行该应用程序时 - 该应用程序使用我的输入创建了一个数据库。然后我加载更新版本的应用程序 - DB_LOCA_VERSION 保持不变。在较新的版本中,更改的是与数据库无关的逻辑。

所以我先“强制停止”应用程序(不执行“清除数据”),然后卸载应用程序。现在我运行更新的版本——这个更新的版本不使用现有的数据库——它创建了一个新的。这是为什么?我想使用现有的数据库。如果我在这里遗漏了什么,请告诉我。任何线索/指示/问题都会有所帮助。

当我在内部安装它时显然失败了 getWritableDatabase , 所以 - onCreate 首先被调用 - 在 onOpen 之前.请注意 HDDBAdapter 的构造函数在应用程序版本中没有变化 - 所以它不应该得到 hdHelper 对于现有的“mydb.db”?而没有 getWritableDatabase 原因 onCreate 被调用。

谢谢

最佳答案

So I first "Force stop" the application ("Clear Data" is not performed) and then uninstall the App. Now I run the newer version - this newer version does not use the existing database - it creates a new one. Why is that?

因为当您卸载应用程序时,该应用程序的所有数据库都将被删除。

关于android - 安装较新/现有版本的应用程序时,会创建 SQLite 数据库而不是重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5113219/

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