gpt4 book ai didi

java - 有没有办法刷新 Android 中 SQLite 数据库文件的更改?

转载 作者:行者123 更新时间:2023-12-02 09:24:00 26 4
gpt4 key购买 nike

我创建了一个非常大的应用程序,它使用大量 SQLite 读/写。由于我无法以简单的方式查看手机中的数据库,因此我在应用程序中具有备份功能,可将数据库文件上传到服务器(用于开发我的本地计算机)。

一开始,我在服务器和手机上都有初始数据库状态。然后我对电话数据库做了一些更改(在其中添加了一些内容)。当我列出数据时,我可以看到列出的新内容。

然后我想备份数据库 - 我已经在运行备份之前记录了所有内容 - 数据库文件的位置(它是/data/user/0/APPLICATION_PACKAGE/databases/DATABASE_FILENAME)。我还删除了服务器上的所有文件。备份完成后,我检查了服务器上的新数据库文件 - 文件大小(以字节为单位)匹配,但文件中没有任何更改???

我说好吧,也许,不知何故,它没有被冲走。我已经关闭了应用程序,再次运行它,列出数据以查看是否存在更改(确实存在),再次运行备份,当检查服务器上的新数据库文件时 - 再次没有更改。

这怎么可能?有没有办法将更改刷新到数据库文件中,以便我可以定期备份它?

最佳答案

很可能启用了 wal(预写日志记录)模式。要禁用它,您需要执行以下操作:

public class MyDbHelper extends SQLiteOpenHelper {

//...

@Override
public void onOpen(SQLiteDatabase db) {
db.disableWriteAheadLogging();
super.onOpen(db);
}

//...
}

https://www.sqlite.org/wal.html

关于java - 有没有办法刷新 Android 中 SQLite 数据库文件的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58475005/

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