天天看点

android9.0从assests导入数据库导入文件无法正常读写问题

需要从assests文件导入一个已创建好的数据库文件到APP的databases目录,代码在android 9.0以下系统运行正常。在android 9.0系统的手机中,文件虽成功导入但仍找不到表。说明程序并没有从导入的数据库文件查询。

原因:9.0的sqlite3默认开启了WAL(Write-Ahead-Logging)预写式日志,数据库的工作方式发生了变化。

处理方法:手动关闭WAL,强制使用JOURNAL模式。

DatabaseHelper helper=DatabaseHelper.getInstance(context);

db=helper.getReadableDatabase();

db.disableWriteAheadLogging(); //禁用WAL模式