Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在greenDAO中启用WriteHeadLogging()_Android_Sqlite_Android Sqlite_Greendao - Fatal编程技术网

Android 在greenDAO中启用WriteHeadLogging()

Android 在greenDAO中启用WriteHeadLogging(),android,sqlite,android-sqlite,greendao,Android,Sqlite,Android Sqlite,Greendao,在创建DaoMaster之前,是否需要在数据库上调用EnableWriteHeadLogging()?这在多线程处理时有用吗?还是DaoMaster自动处理?我需要从多个线程进行非阻塞读取。它(enableWriteHeadLogging())不会在greendao中的某个地方被调用,因此您必须自己调用它,即在OpenHelper的实现中 不过Greendao使用事务。在greendao内部也有一些同步操作,但要确保您应该使用启用WriteHeadLogging() DatabaseOpenHe

在创建DaoMaster之前,是否需要在数据库上调用EnableWriteHeadLogging()?这在多线程处理时有用吗?还是DaoMaster自动处理?我需要从多个线程进行非阻塞读取。

它(
enableWriteHeadLogging()
)不会在greendao中的某个地方被调用,因此您必须自己调用它,即在OpenHelper的实现中

不过Greendao使用事务。在greendao内部也有一些同步操作,但要确保您应该使用
启用WriteHeadLogging()

DatabaseOpenHelper.getwriteabledb()
在引擎盖下返回一个
SQLiteDatabase
,这样您就可以对此进行转换并调用
enableWriteAheadLogging
(注意编写者应该使用
BeginTransactionNoneExclusive


不幸的是,出于我的目的,
DatabaseOpenHelper.getEncryptedWritableDb()
返回一个
sqlcipher.SQLiteDatabase
,该数据库不公开此功能

为什么您认为需要WAL进行并发读取?@CL。因为某些线程会写入。如果数据库格式为SQLite,则支持多个并发读卡器,但只支持一个写入器,在写入数据库时,数据库是锁定的——请参阅的第二个优点。目的是同时读写。