关闭由android中的内容提供商打开的开放数据库连接

时间:2016-07-21 17:15:40

标签: android sqlite

我有一个场景,在我的应用程序的同一运行时,可以删除所有本地数据库,然后使用新加密重新创建。它是一个边缘案例,但它可能。

问题是,系统维护与这些数据库的开放连接,因为它们是通过内容提供商访问的,至少这是我的理解。当我尝试在删除旧数据库后在同一运行时创建/写入新数据库时,我收到一个崩溃说数据库是只读的。如果我杀了应用程序并重新打开它们就可以了。

我尝试使用finishAffinity()手动终止该应用,但实际上并没有杀死该应用至少足以让系统清理数据库连接。

有什么方法可以强制系统关闭与数据库的开放连接?

1 个答案:

答案 0 :(得分:0)

如果您使用数据库并以读取模式打开连接,则无法在数据库中更新或添加数据。 您必须关闭由您打开的数据库

 db.close();

最后。