Set db sync mode for Android P+ (#2597)
This commit is contained in:
parent
7a45723eda
commit
8b3e331c5e
|
|
@ -34,6 +34,7 @@ import android.content.pm.PackageParser;
|
|||
import android.database.Cursor;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.database.sqlite.SQLiteStatement;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.HandlerThread;
|
||||
|
|
@ -91,12 +92,7 @@ import java.util.zip.ZipOutputStream;
|
|||
public class ConfigManager {
|
||||
private static ConfigManager instance = null;
|
||||
|
||||
private final SQLiteDatabase db = SQLiteDatabase.openDatabase(
|
||||
ConfigFileManager.dbPath.getAbsolutePath(),
|
||||
null,
|
||||
SQLiteDatabase.CREATE_IF_NECESSARY | SQLiteDatabase.ENABLE_WRITE_AHEAD_LOGGING,
|
||||
sqLiteDatabase -> Log.w(TAG, "database corrupted")
|
||||
);
|
||||
private final SQLiteDatabase db = openDb();
|
||||
|
||||
private boolean verboseLog = true;
|
||||
private boolean dexObfuscate = true;
|
||||
|
|
@ -179,6 +175,16 @@ public class ConfigManager {
|
|||
|
||||
private Set<String> scopeRequestBlocked = new HashSet<>();
|
||||
|
||||
private static SQLiteDatabase openDb() {
|
||||
var params = new SQLiteDatabase.OpenParams.Builder()
|
||||
.addOpenFlags(SQLiteDatabase.CREATE_IF_NECESSARY | SQLiteDatabase.ENABLE_WRITE_AHEAD_LOGGING)
|
||||
.setErrorHandler(sqLiteDatabase -> Log.w(TAG, "database corrupted"));
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||
params.setSynchronousMode("NORMAL");
|
||||
}
|
||||
return SQLiteDatabase.openDatabase(ConfigFileManager.dbPath.getAbsoluteFile(), params.build());
|
||||
}
|
||||
|
||||
private void updateCaches(boolean sync) {
|
||||
synchronized (cacheHandler) {
|
||||
requestScopeCacheTime = requestModuleCacheTime = SystemClock.elapsedRealtime();
|
||||
|
|
|
|||
Loading…
Reference in New Issue