使用多线程访问sqlite时出错

时间:2011-11-12 19:06:10

标签: android multithreading sqlite

我在需要从两个并行运行的不同线程访问数据库的应用程序中收到以下错误。

java.lang.IllegalStateException: attempt to acquire a reference on a close SQLiteClosable

问题在于,当我在线程部分对数据库进行加载时(在此过程的持续时间内),用户可以按主活动上的任何按钮来修改同一数据库中的另一个表。可能发生问题的点

有没有办法避免这个错误?

非常感谢

1 个答案:

答案 0 :(得分:1)

请查看我的博文。它解释了如何维护和共享sqlite数据库连接并避免麻烦。

http://www.touchlab.co/blog/single-sqlite-connection/

基本上,将一个SQLiteOpenHelper实例保留在全局单例中,并且永远不要“关闭”它。它基本上只是一个文件引用,当你的应用程序关闭时,文件句柄将自行关闭。