【发布时间】:2013-03-03 15:08:57
【问题描述】:
我正在使用 sqlite 开发一个应用程序,但我不知道何时应该打开和关闭我的数据库。
- 在应用程序运行时保持数据库打开是否良好做法?
- 我应该只在读取/写入数据库时打开和关闭数据库吗?
- 重要吗?
【问题讨论】:
我正在使用 sqlite 开发一个应用程序,但我不知道何时应该打开和关闭我的数据库。
【问题讨论】:
在应用程序运行时保持数据库打开是一种好习惯吗?
这是个人喜好。
我个人会一直保持打开状态,并以某种生命周期方法关闭它,例如onStop() 或onDestroy()。这样,您可以在每次使用之前通过在单个 SQLiteDatabase 对象上调用 isDbLockedByCurrentThread() 或 isDbLockedByOtherThreads() 轻松检查数据库是否已在使用中。这将防止对数据库进行多次操作,并使您的应用程序免于潜在的崩溃,如果您在每次读/写打开/关闭的情况下不小心有两个打开的实例,这是可能的。
请记住,当您打开数据库连接时,您的应用程序可能会被终止。
此外,您应该使用事务来减少一次对磁盘的写入操作。
重要吗?
数据库只是一天结束时磁盘上的另一个文件。如果你尝试同时从多个线程/实例写入它,你会遇到问题。
【讨论】:
是的,这很重要。在任何应用程序中,不仅是移动应用程序,最好只在您需要它对所述数据库执行操作时才保持数据库连接打开。这意味着您应该尽快关闭连接。连接是一种有限的资源,重要的是不要将它们捆绑在一起。
【讨论】: