1

I was looking at the JavaDoc for SQLiteOpenHelper and noticed the setWriteAheadLoggingEnabled(boolean) method. The SQLiteOpenHelper doc suggest enabling write-ahead logging in a helper's onConfigure(SQLiteDatabase) method.

Is there any difference between calling setWriteAheadLoggingEnabled(true) on the helper, compared to calling enableWriteAheadLogging() on the database instance that gets passed to onConfigure()? Or is the API just redundant?

Update: Looking at the code for SQLiteDatabase and SQLiteOpenHelper, it appears that SQLiteOpenHelper.setWriteAheadLoggingEnabled(boolean) just does some checks (that enableWriteAheadLogging() and disableWriteAheadLogging() already do) before calling the appropriate method.

spaaarky21
  • 6,524
  • 7
  • 52
  • 65

1 Answers1

3

SQLiteOpenHelper setWriteAheadLoggingEnabled() is mostly just a wrapper for 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    }

So yes, it's more or less redundant.

laalto
  • 150,114
  • 66
  • 286
  • 303