SQLite数据库在Android中重新打开

时间:2012-02-28 20:58:44

标签: android sqlite

我在SQLiteDatabase类和SQLiteDatabaseOpener中看不到任何方法因此我收到了此错误:

AndroidRuntime(806): Caused by: java.lang.IllegalStateException: attempt to acquire a reference on a close SQLiteClosable

设计它的好方法是什么,以便我可以在整个某个类中使用数据库?

谢谢!

1 个答案:

答案 0 :(得分:2)

答案就在这里 Exception: attempt to acquire a reference on a close SQLiteClosable

这个让我疯狂的时间最长。我发现的解决方案非常简单:不要保留对SQLiteDatabase对象的引用。相反,使用SQLiteOpenHelper并在每次需要时调用getWritableDatabase()。来自文档:

  

public synchronized SQLiteDatabase getWritableDatabase()

     

创建和/或打开将用于阅读和的数据库   写作。成功打开后,数据库将被缓存,因此您可以   每次需要写入数据库时​​都调用此方法。

     

答案就在那儿。