wcdb
wcdb copied to clipboard
数据库恢复问题
The language of WCDB
Java
The version of WCDB
v1.0.8
The platform of WCDB
Android
The installation of WCDB
Maven
What's the issue?
背景: 想实现检测数据库损坏后,通知上层提示用户进入到数据库修复页面。这里就需要监听到数据库损坏的回调。目前使用的是Room+wcdb。 看源码有SupportSQLiteOpenHelper.Callback 和 DatabaseErrorHandler有数据库损坏的回调,但是看了一下初始化的代码,好像没有找到怎么设置这些回调。
请教一下,改如何监听到数据库被损坏。
public static TestDb getInstance(Context context) {
if (null == instance) {
WCDBOpenHelperFactory factory = new WCDBOpenHelperFactory()
.writeAheadLoggingEnabled(false);
instance = Room.databaseBuilder(context.getApplicationContext(), TestDb.class, DB_NAME)
.openHelperFactory(factory)
.addCallback(callback)
.build();
}
return instance;
}
同问,Android这边没有办法察觉数据库是否损坏,没有时机自动调用封装的修复方法,麻烦解答下这个问题
room有默认的损坏修复机制,代码位于SupportSQLiteOpenHelper.Callback.onCorruption(),wcdb最终也调用此方法,想要监听的话重写此方法即可