Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用多线程访问sqlite时出错_Android_Multithreading_Sqlite - Fatal编程技术网

Android 使用多线程访问sqlite时出错

Android 使用多线程访问sqlite时出错,android,multithreading,sqlite,Android,Multithreading,Sqlite,我在一个需要从两个并行运行的不同线程访问数据库的应用程序中遇到以下错误 java.lang.IllegalStateException: attempt to acquire a reference on a close SQLiteClosable 问题是,当我在线程部分加载数据库时(在此过程期间),用户可以按下主活动上的任何按钮来修改同一数据库中的另一个表。问题可能发生的点 有没有办法避免这个错误 非常感谢请查看我的博客帖子。它解释了如何维护和共享sqlite数据库连接并避免麻烦 基本上

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

java.lang.IllegalStateException: attempt to acquire a reference on a close SQLiteClosable
问题是,当我在线程部分加载数据库时(在此过程期间),用户可以按下主活动上的任何按钮来修改同一数据库中的另一个表。问题可能发生的点

有没有办法避免这个错误


非常感谢

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


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

在你的活动之间进行适当的同步将解决这个问题。