2014-07-12 13 views
0

我得到一个当后台线程正在将数据处理到数据库时如何处理DB.close?

java.lang.IllegalStateException Cannot perform this operation because the connection pool has been closed.

,因为我的应用程序从服务器获取信息,并在其中background thread写的东西我SQLite database处理它。

我在关闭应用程序时收到此错误,并且仍有后台线程正在尝试写入封闭的数据库。

我解决这个问题的最好方法是什么?

+0

挂起后台线程? – JohnnyAW

回答

0

解决此问题的最佳方法是什么?

不管关闭它,都不要关闭数据库。要么找到一个更好的时间来关闭它(当你知道什么时候不再需要它),或者根本就不关闭它。

+0

谢谢!我假设系统会在所有功能完成后自动关闭它。 –

+1

@TheNomad:不是。数据库将保持打开状态,直到您的流程终止。这并不罕见,不会造成任何特别的伤害。 SQLite是事务性的,因此当您执行实际的数据库I/O时,所有内容都写入磁盘。 – CommonsWare

+0

啊,明白了。谢谢您的帮助! –