我在查看用于SQLiteOpenHelper的JavaDoc并注意到setWriteAheadLoggingEnabled(boolean)
方法。 SQLiteOpenHelper文档建议在助手的onConfigure(SQLiteDatabase)
方法中启用预写日志记录。
与在传递给setWriteAheadLoggingEnabled(true)
的数据库实例上调用enableWriteAheadLogging()
相比,在助手上调用onConfigure()
有什么区别?还是API只是多余的?
更新:查看SQLiteDatabase和SQLiteOpenHelper的代码,看来SQLiteOpenHelper.setWriteAheadLoggingEnabled(boolean)
在调用适当的方法之前只是做了一些检查(enableWriteAheadLogging()
和disableWriteAheadLogging()
已经做过)。
最佳答案
SQLiteOpenHelper setWriteAheadLoggingEnabled()
主要只是SQLiteDatabase enableWriteAheadLogging()
的包装:
128 public void setWriteAheadLoggingEnabled(boolean enabled) {
129 synchronized (this) {
130 if (mEnableWriteAheadLogging != enabled) {
131 if (mDatabase != null && mDatabase.isOpen() && !mDatabase.isReadOnly()) {
132 if (enabled) {
133 mDatabase.enableWriteAheadLogging();
134 } else {
135 mDatabase.disableWriteAheadLogging();
136 }
137 }
138 mEnableWriteAheadLogging = enabled;
139 }
140 }
141 }
是的,它或多或少是多余的。
关于android - SQLiteOpenHelper.setWriteAheadLoggingEnabled(true)与SQLiteDatabase.enableWriteAheadLogging(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25318443/