如果我的应用程序在事务期间被杀死(即在下面的源代码中的位置1),则数据库被锁定。应用程序被使用任务管理器终止或从调试器内终止(我知道不应该使用任务管理器,我知道在此阶段终止应用程序是我的错;-)) - 但无论如何,这可能发生。
如果我然后尝试重启应用程序,sqlite无法打开数据库,因为它被锁定(即使重启设备后)。在文件系统上有数据库文件和日志文件。如何恢复数据库并再次打开它?
final SQLiteDatabase db = mDb.getDb(); try { db.beginTransaction(); //execute some updates (1) db.setTransactionSuccessful(); } finally { db.endTransaction(); }
此时只能由一个线程访问数据库,并且只有一个数据库实例。
答案 0 :(得分:0)
对我来说有用的是在打开数据库之前删除日志文件......
或以某种方式处理损坏的日记文件。