在创建DaoMaster之前,是否需要在数据库上调用enableWriteAheadLogging()?当多线程或DaoMaster自动处理时,这有用吗?我需要来自多个线程的非阻塞读取。
它(enableWriteAheadLogging ()
)不会在greendao的某个地方被调用,所以你必须自己调用它,即在你的OpenHelper实现中。
Greendao虽然使用交易。在greendao内部也有一些同步,但是为了确保你应该使用enableWriteAheadLogging ()
。
DatabaseOpenHelper.getWritableDb()
在引擎盖下返回一个SQLiteDatabase
所以你可以投射到这个并调用enableWriteAheadLogging
(注意作者应该使用beginTransactionNonExclusive
)
不幸的是,为了我的目的,DatabaseOpenHelper.getEncryptedWritableDb()
返回一个sqlcipher.SQLiteDatabase
,它不会暴露这个功能