【问题标题】:When should I call a close method of a SQLite database in Android我什么时候应该在 Android 中调用 SQLite 数据库的关闭方法
【发布时间】:2010-06-14 06:11:36
【问题描述】:

我想知道何时应该在生命周期中调用 sqlite 数据库的关闭方法,因为 sdk (http://developer.android.com/resources/tutorials/notepad/index.html) 中的记事本示例不调用 NotesDbAdapter.close(),但它实现了该方法.

我的应用程序访问数据库的频率不高,但有一些,这取决于用户请求。我想我应该在 onCreate 打开数据库,然后在 onDestroy 关闭它。这是一个好习惯吗?

提前致谢, 横京

【问题讨论】:

    标签: android


    【解决方案1】:

    我想我应该在 onCreate,然后在 销毁。这是一个好习惯吗?

    是的,这是一个很好的模式。

    【讨论】:

    • 感谢 CommonsWare。你向我保证;)
    • 不,不是。如开发人员页面中所述,如果系统由于内存不足而终止进程,则不会调用 onDestroy 方法。您应该为此使用 onPause 方法。 developer.android.com/reference/android/app/…
    • @Will Kru:不,onDestroy() 可以。如果进程终止,显然没有任何危害——一切都作为数据库事务的一部分被持久化。
    • 您能详细说明一下吗?显然,当应用程序在 onPause 时被系统关闭时,onDestroy 没有被调用,数据库没有关闭并且会发生内存泄漏?编辑:@kirk woll:感谢您指出这一点,不知道我能做到这一点,还在学习这个网站!
    • @Will Kru:不,不会发生内存泄漏,因为进程正在终止,所以所有内存都按定义释放。如果您对此主题还有其他问题,请打开您自己的 StackOverflow 问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    相关资源
    最近更新 更多