数据库表在Android Pie 9中不可见

问题描述 投票:0回答:1

我已经在Android 9.0 Pie手机上测试了我的应用程序(使用sqlite数据库),当我在DB sqlite浏览器中打开数据库时,它没有显示我在Sqlite数据库中创建的表。我在Android Studio中的Android 9.0 Pie模拟器上做了相同的操作...但是数据库表不可见

android-studio android-sqlite android-9.0-pie
1个回答
0
投票

您的问题可能是您只复制了数据库文件,而没有复制-wal-shm文件。 尝试复制所有三个文件,然后这些表将可能可用。

  • -wal和-shm文件的名称与数据库文件的名称相同,但后缀分别为-wal和-shm。

原因是在启用Android Pie的情况下,默认模式为WAL (write-ahead logging),而不是以前的默认模式为日记模式。

使用journal模式更改将被写入数据库,并存储在日志文件中,从而允许更改从日志文件回滚。

使用WAL模式,将更改写入-wal文件(实际上是数据库的一部分),回滚有效地从-wal文件中删除更改。但是,如果尚未将-wal文件提交到实际数据库,并且在没有-wal文件的情况下打开了数据库,则更改似乎已丢失。

如果数据库完全关闭,这将检查点并将-wal文件中的更改包括到数据库文件中。

© www.soinside.com 2019 - 2024. All rights reserved.