0

当 Android 打开一个 SQLite 文件并且该文件已损坏时,Android 会删除该文件。尽管听起来令人惊讶,但这种行为在 Android 源代码中明确实现,导致惊愕和这个 Android 问题。

作为解决方案——

  • 不能实现恢复算法(aries),可以在android源代码中添加。

  • 或者,最好使用任何其他数据库,如Berkley DB Java EditionH2 DB或任何其他

4

1 回答 1

1

SQLite 已经实现了类似 ARIES 的恢复算法(它更简单,因为 SQLite 中没有写并发)。但是,这无助于防止闪存中的错误。任何其他数据库都会看到类似的损坏。

应用程序已经预料到它们的数据会在用户删除或重新安装应用程序时消失。因此,将其用作错误恢复方法是有意义的;如果 Android 会从每个数据访问调用中返回 I/O 错误,那么大多数应用程序都会中断,因为处理此类错误从未经过测试或根本没有实现。

于 2012-10-05T14:16:40.630 回答