greenDAO中的enableWriteAheadLogging()

问题描述 投票:2回答:2

在创建DaoMaster之前,是否需要在数据库上调用enableWriteAheadLogging()?当多线程或DaoMaster自动处理时,这有用吗?我需要来自多个线程的非阻塞读取。

android sqlite android-sqlite greendao
2个回答
0
投票

它(enableWriteAheadLogging ())不会在greendao的某个地方被调用,所以你必须自己调用它,即在你的OpenHelper实现中。

Greendao虽然使用交易。在greendao内部也有一些同步,但是为了确保你应该使用enableWriteAheadLogging ()


0
投票

https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#enableWriteAheadLogging()

DatabaseOpenHelper.getWritableDb()在引擎盖下返回一个SQLiteDatabase所以你可以投射到这个并调用enableWriteAheadLogging(注意作者应该使用beginTransactionNonExclusive

不幸的是,为了我的目的,DatabaseOpenHelper.getEncryptedWritableDb()返回一个sqlcipher.SQLiteDatabase,它不会暴露这个功能

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