当Android打开SQLite文件且文件已损坏时,Android会删除该文件。 虽然听起来很令人惊讶,但这种行为在Android源代码中清晰地实现,导致惊愕和Android问题。
作为解决方案 -
无法实现恢复算法(aries),可以在android源代码中添加。
或者,最好使用任何其他数据库,例如Berkley DB Java Edition,H2 DB或任何其他
答案 0 :(得分:1)
SQLite已经像ARIES一样实现a recovery algorithm(它更简单,因为SQLite中没有写并发)。但是,这对闪存存储器中的错误没有帮助;任何其他数据库都会看到类似的腐败。
应用程序已经不得不期望他们的数据在用户删除或重新安装应用程序时消失。因此将其用作错误恢复方法是有意义的;如果Android会从每次数据访问调用返回I / O错误,大多数应用程序都会中断,因为处理此类错误从未经过测试或根本没有实现过。