Android 在greenDAO中启用WriteHeadLogging()
在创建DaoMaster之前,是否需要在数据库上调用EnableWriteHeadLogging()?这在多线程处理时有用吗?还是DaoMaster自动处理?我需要从多个线程进行非阻塞读取。它(Android 在greenDAO中启用WriteHeadLogging(),android,sqlite,android-sqlite,greendao,Android,Sqlite,Android Sqlite,Greendao,在创建DaoMaster之前,是否需要在数据库上调用EnableWriteHeadLogging()?这在多线程处理时有用吗?还是DaoMaster自动处理?我需要从多个线程进行非阻塞读取。它(enableWriteHeadLogging())不会在greendao中的某个地方被调用,因此您必须自己调用它,即在OpenHelper的实现中 不过Greendao使用事务。在greendao内部也有一些同步操作,但要确保您应该使用启用WriteHeadLogging() DatabaseOpenHe
enableWriteHeadLogging()
)不会在greendao中的某个地方被调用,因此您必须自己调用它,即在OpenHelper的实现中
不过Greendao使用事务。在greendao内部也有一些同步操作,但要确保您应该使用启用WriteHeadLogging()
DatabaseOpenHelper.getwriteabledb()
在引擎盖下返回一个SQLiteDatabase
,这样您就可以对此进行转换并调用enableWriteAheadLogging
(注意编写者应该使用BeginTransactionNoneExclusive
)
不幸的是,出于我的目的,
DatabaseOpenHelper.getEncryptedWritableDb()
返回一个sqlcipher.SQLiteDatabase
,该数据库不公开此功能为什么您认为需要WAL进行并发读取?@CL。因为某些线程会写入。如果数据库格式为SQLite,则支持多个并发读卡器,但只支持一个写入器,在写入数据库时,数据库是锁定的——请参阅的第二个优点。目的是同时读写。