【发布时间】:2011-05-31 15:40:59
【问题描述】:
本周我一直在学习有关 ContentProvider 的所有知识,并使用 SQLiteOpenHelper 类来管理提供程序内部数据库的创建和升级。具体来说,我一直在阅读 sdk 示例目录中的 NotePad 示例。
现在,我可以看到 SQLiteOpenHelper 有一个 close() 方法。我知道让空闲数据库保持打开状态是不好的做法,并且可能导致内存泄漏等等(除非this 讨论朝着正确的方向发展)。如果我在 Activity 中使用该类,那么我只需在 onDestroy() 方法中调用 close(),但据我所知,ContentProvider 的生命周期与 Activity 不同。 NotePad 的代码似乎从不调用 close(),所以我想假设它是由 SQLiteOpenHelper 或其他一些难题处理的,但我真的很想知道。我也不太信任示例代码...
问题摘要:我们应该什么时候关闭提供程序中的数据库?
【问题讨论】:
-
Dianne Hackborn 说有no need to close the db。
-
这是此线程中最重要的信息。我做了一个答案。
标签: android sqlite android-contentprovider