Android中SQLiteDatabase的关闭时机

王正一
  • 1.6k
  1. Android中无法避免操作SQLite数据库,并且大家的一贯做法都是维系一个全局的单例句柄,保持SQLiteDatabase数据库句柄出于打开状态,避免多次打开耗时。

  2. 我的问题是:大家什么时机去关闭数据库连接句柄呢?

  3. 我的思路是:提供一个自定义的Application类,在Application类的onCreate函数里去初始化SQLiteOpenHelper实例,获取SQLiteDatabase的读、写句柄。在onDestory函数里,去关闭数据库,不知道这种做法是否可行?或者是否有更好的建议?

回复
阅读 7.9k
3 个回答
𝒁𝒉𝒋𝒍37
  • 2k

这个完全是根据自己需求去操作了. 另外, 如果你使用的是ContentProvider, 一般情况下, 官方是不希望你执行关闭操作的, 你在ContentProvider里也是找不到onDestroy()的生命周期函数的.

Mushi_Uta
  • 2
新手上路,请多包涵

Application并没有onDestory方法吧。如果是一个不会频繁使用到的Database,建议用完就close掉。或者一般项目都会有一个一直存在的主Activity,可以在这个Activity onDestroy的时候close掉。

没有最佳的,只有最适合你的方式
按我的看法:SQlite可以随用随开,建立数据库资源池可能在移动设备上不是一个好主意

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏