我在查看用于SQLiteOpenHelper的JavaDoc并注意到setWriteAheadLoggingEnabled(boolean)方法。 SQLiteOpenHelper文档建议在助手的onConfigure(SQLiteDatabase)方法中启用预写日志记录。

与在传递给setWriteAheadLoggingEnabled(true)的数据库实例上调用enableWriteAheadLogging()相比,在助手上调用onConfigure()有什么区别?还是API只是多余的?

更新:查看SQLiteDatabaseSQLiteOpenHelper的代码,看来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/

10-09 01:38