我正在创建一个
Android应用程序,基本上是蘑菇信息列表.我从一个sqlite数据库获取这些信息.我有一个全局单例,其中有一个服务类,我使用它来访问我的数据库.几乎每个活动都访问数据库.最好让我的数据库打开所有的时间或打开和关闭它,因为我需要的数据?
如果最好的做法是始终保持开放状态,那么我需要确保关闭它,如果在活动被破坏时将其打开,最坏的情况是什么?
解决方法
根据我以前在Java中的经验,我会说最好关闭连接,这在一个小的Android应用程序中可能并不重要,但是如果你有10个应用程序正在运行,并且所有的应用程序都访问数据库,那么你有10个挂起的连接.开始更多,迟早的另一个应用程序将不得不等待,因为sql服务器不能处理任何更多的请求.
我想你可以把它当成你电脑上的文件.您从中读取数据,然后在完成后关闭数据.为什么要在你的应用程序中打开文件?
现在我对Android编程很新,所以我没有实现数据库调用.但是,当我在几年前在Java应用程序中遇到同样的问题时,我实现了一个数据库对象,其中我连接到数据库. “所有人”(类)必须调用数据库对象(单例或最终方法)来获取数据,类似于存储过程,而是在应用程序中.
因为这样,我知道什么时候打电话,何时停止.然后我放置一个超时,如果几分钟内没有发生任何事情,我将关闭到db的连接. (这也考虑到一些超时异常,因为连接的超时永远不会发生.)当输入新的调用时,我可以轻松地启动一个新的连接并使用新的数据库连接.
通过将方法作为public Fungus [] getAllFungus()和public Fungus [] getFilteredFungus(string where))抽象出sql调用.