本周,我学习了 ContentProvider 的所有知识,并使用 SQLiteOpenHelper 类管理提供程序内部数据库的创建和升级。具体来说,我已经从 sdk 的示例目录中通读了 NotePad 示例。
现在,我可以看到 SQLiteOpenHelper 有一个 close ()方法。我知道保持空闲数据库打开是不好的做法,可能会导致内存泄漏等等(除非 这个讨论朝着正确的方向发展)。如果我在 Activity 中使用该类,那么我只需在 onDestroy ()方法中调用 close () ,但据我所知,ContentProvider 的生命周期与 Activity 不同。NotePad 的代码似乎从来没有调用 close () ,所以我想假设它是由 SQLiteOpenHelper 或其他一些难题处理的,但我真的想知道确切的答案。我也不太相信样本代码。
问题摘要: 什么时候应该关闭提供程序中的数据库(如果有的话) ?