我在我的应用程序中有一个正常的SQLite数据库,通过我自己的ContentProvider管理并通过SQLiteOpenHelper实现。数据库每隔一段时间都会随机删除自己
仅在Droid上,每隔几周左右,数据库就会消失。我有几个用户为我写了这些内容,现在我也亲自看到了它。我添加了一些调试信息(每隔几周只能看到它时很难再现),并且在一个实例中,它仅发生在小部件更新之间 - 首先显示小部件并显示数据,下次SQLiteOpenHelper onCreate被调用。
该应用程序本身执行一些多线程恶意代码,但所有ContentProvider实现都具有synchronized关键字,所有对数据库的访问都是通过内容提供者进行的,并且在上述实例中,没有多线程正在进行应用程序本身没有运行,只是小部件)。
而且,这只是在Droid上。我从未在G1上看到过它。我从来没有关闭数据库,但它是一个内容提供商,听起来我不应该这样做(我记得hackbod说,这个想法是,操作系统将在必要时关闭应用程序的过程,这将自动关闭数据库)。
任何想法?
这是多么容易重现?你有没有发生过任何logcat输出? – fadden 2010-06-28 20:39:09
极难复制 - 它只是随机发生。我的应用有一个小部件,所以有一天我打开手机,看到小部件显示没有记录。 一些用户报告他们启动该应用程序,并且没有记录。由于我不知道什么时候发生,我没有logcat输出。我确实添加了一个日志文件到我的应用程序。我能看到的只是小部件更新,查询并获得结果。一小时后,小部件再次更新,执行查询,内容提供者试图抓取隐含地调用onCreate的数据库,指示没有数据库存在。 – EboMike 2010-06-28 22:13:52
可能与http://b.android.com/5669(它还没有解析)相同。该错误有528条评论,迄今为止只有1条部分有用的错误报告,所以我希望你可以有办法让它发生或完整的日志。 – fadden 2010-06-29 20:51:40