0

我正在用 sqlite 开发一个应用程序,但我不知道什么时候应该打开和关闭我的数据库。

  • 在应用程序运行时保持数据库打开是一种好习惯吗?
  • 我应该在读/写数据库时打开和关闭数据库吗?
  • 有关系吗?
4

2 回答 2

1

是的,这很重要。在任何应用程序中,而不仅仅是移动应用程序,最好只在您需要它对所述数据库执行操作时才保持数据库连接打开。这意味着您应该尽快关闭连接。连接是一种有限的资源,重要的是不要将它们捆绑在一起。

于 2013-03-03T15:16:03.233 回答
1

在应用程序运行时保持数据库打开是一种好习惯吗?

这是个人喜好。

我个人会一直保持打开状态,并以某种生命周期方法关闭它,例如onStop()or onDestroy()。这样,您可以在每次使用之前通过调用isDbLockedByCurrentThread()或在单个 SQLiteDatabase 对象上轻松检查数据库是否已在使用中。isDbLockedByOtherThreads()这将防止对数据库进行多次操作,并使您的应用程序免于潜在的崩溃,如果您在每次读/写打开/关闭的情况下不小心有两个打开的实例,这是可能的。

请记住,当您打开数据库连接时,您的应用程序可能会被终止。

此外,您应该使用事务来减少一次对磁盘的写入操作。

有关系吗?

数据库只是一天结束时磁盘上的另一个文件。如果您尝试同时从多个线程/实例写入它,您将遇到问题。

于 2013-03-03T15:17:19.210 回答