我正在创建一个应用程序,但是当我开始创建数据库类(sqlite)并且它可以工作时,现在 sqlite 文件在 android 9 中有所不同,在其他版本中,您可以转到/data/data/packageapp/databases 并发现database.sqlite 和database.sqlite-journal,现在我发现这个和这个文件无法在sqlite 管理员或类似管理员上打开...但是数据库工作我不知道发生了什么,我想创建最后一个文件
检查照片
最佳答案
默认情况下,Android 9 SQLite 现在使用预写日志模式 (WAL),而不是日志模式,因为它具有提高性能的潜力。这就是为什么您会看到 -shm(共享内存文件)和 -wal(预写日志文件)文件。
Temporary Files Used By SQLite
但是,您应该能够在支持打开 SQLite 数据库的工具中的其他位置打开实际的数据库文件 (yonuncafrases.sqlite)。 Compatibility WAL (Write-Ahead Logging) for Apps
i want to create the last files
如果需要,您可以使用 SQLite disableWriteAheadLogging 方法强制使用日志模式,请注意,这必须在事务外部完成,然后将使用日志模式,并且 -journal 文件将然后根据需要创建。
- 我建议覆盖 onConfigure 方法并在该重写方法中调用disableWriteAheadLogging。或者,您可以使用 journal_mode pragma (我相信这就是disableWriteAheadLogging所做的)
您可能希望阅读Write-Ahead Logging
关于android - Android 9 Pie 在手机上创建 SQLite 数据库文件的变化(?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53913827/