gpt4 book ai didi

android - 在 SharedPreferences 中保存我的数据库版本

转载 作者:行者123 更新时间:2023-11-30 01:22:45 25 4
gpt4 key购买 nike

我正在尝试将一个版本添加到我的数据库中。我关注了this answer这样做。问题是,每次我调用 GetDefaultSharedPreferences 时,它似乎都找不到我存储的版本。这是我的代码:

public Database() {
var dbPath = DatabasePath;
int dbVersion;

ISharedPreferences sharedPrefs = PreferenceManager.GetDefaultSharedPreferences (Application.Context);
dbVersion = sharedPrefs.GetInt ("db_ver", 0);

if (!File.Exists (dbPath) || dbVersion != DATABASE_VERSION) {
CreateDatabase (dbPath);
}

database = new SQLiteConnection (dbPath);
}

void CreateDatabase(string dbPath) {
var s = Application.Context.Assets.Open (originalDBLocation);
var writeStream = new FileStream (dbPath, FileMode.OpenOrCreate, FileAccess.Write);
ReadWriteStream (s, writeStream);
writeStream.Close ();
ISharedPreferences sharedPrefs = PreferenceManager.GetDefaultSharedPreferences (Application.Context);
ISharedPreferencesEditor editor = sharedPrefs.Edit ();
editor.PutInt ("db_ver", DATABASE_VERSION);
editor.Commit();
}

构建后第一次运行代码时,dbVersion 始终为 0。是否更改 DATABASE_VERSION 都没有关系。当我关闭手机上的应用程序并再次打开时,正确的版本被放入 dbVersion。所以我想共享首选项会在重新安装应用程序时被删除?在我使用它们的其他应用程序中,情况并非如此。

有人知道我该如何解决这个问题吗?

提前致谢。

最佳答案

我建议您将数据库版本保存在数据库本身中。这将避免冲突(保存的版本与实际的数据库版本)并将这些东西放在一起。

考虑到不必要的 db 调用是好的,但要考虑的地方很少。因此,对设置的任何访问都需要时间(数据库、文件或首选项),但开销不同。但是由于每个应用程序生命周期只需要一次,所以可能没问题。最好继续优化重复发生的事件和数据库访问。

关于android - 在 SharedPreferences 中保存我的数据库版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36859311/

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