Android 当数据库在应用程序中的许多活动和/或片段中使用时,打开和关闭数据库的最佳位置在哪里?

Android 当数据库在应用程序中的许多活动和/或片段中使用时,打开和关闭数据库的最佳位置在哪里?,android,sqlite,android-fragments,android-activity,Android,Sqlite,Android Fragments,Android Activity,我正在编写一个应用程序,每个活动和服务都使用我的Sqlite数据库。目前,我实例化db(db=newdbadapter(this);)并在所有活动的onCreate方法中打开它,在onStop方法中关闭它。这是正确的方法还是我应该以某种方式使db全球化?或者它应该以某种方式以捆绑方式在活动之间传递 我还希望将我的UI更改为使用片段,这将意味着更多的组件可以访问相同的数据库。在没有片段的情况下,在每个活动中打开和关闭db似乎是相对合适的,因为通过它们的过程是线性的。但是对于片段(我刚刚开始了解),

我正在编写一个应用程序,每个活动和服务都使用我的Sqlite数据库。目前,我实例化db(db=newdbadapter(this);)并在所有活动的onCreate方法中打开它,在onStop方法中关闭它。这是正确的方法还是我应该以某种方式使db全球化?或者它应该以某种方式以捆绑方式在活动之间传递

我还希望将我的UI更改为使用片段,这将意味着更多的组件可以访问相同的数据库。在没有片段的情况下,在每个活动中打开和关闭db似乎是相对合适的,因为通过它们的过程是线性的。但是对于片段(我刚刚开始了解),在同一个屏幕上可能有很多片段,因此如果每个片段都有自己的数据库实例,我会担心它们之间的冲突。因此,如果您能就在这些情况下如何处理db提出建议,我将不胜感激


非常感谢您的帮助

为什么不编写一个在处理所有数据库传输的所有活动之外的类呢?这样就可以查询处理所有db访问的类

您可以在应用程序和数据库之间放置一个抽象层,这样应用程序所需要的就是一个(或多个)具有正确参数的函数调用

这样,在应用程序中的所有db访问中,如果您决定修补,只需更改一组代码,那么函数调用可能基本保持不变

就效率而言,只要您没有从存储中提取成吨的数据,那么您如何打开数据库可能就无关紧要了

但是为了它,可能值得为每个查询打开和关闭,如果他们的电池在db打开时耗尽了怎么办


无论哪种方式,通过数据库和应用程序之间的抽象级别,您都可以轻松更改访问数据库的方式。

如果您对使用框架而不是编写数据库访问代码感兴趣,请查看Active Android()。在我们的应用程序中,我们现在不必担心何时打开和关闭数据库,因为这个框架负责这样做


它使用应用程序对象的onCreate和onTerminate来初始化和取消初始化框架,在此期间执行与打开和关闭数据库相关的操作。如果出于某种原因,您不想使用该框架,您可以从中得到启示,并遵循类似的模型,这看起来很棒。对我来说,设置它似乎有点复杂——因为我不熟悉在Eclipse中添加外部库和插件等——但我肯定会“从中吸取教训”,创建自己的类似类。但我还是会读更多关于这个活跃的Android库的内容,因为它看起来确实很酷,而且肯定是我将来想要使用的东西。干杯:-)是的,当然。在我们的办公室,我们喜欢它,并且正在将所有手写的数据库访问代码移到这个框架中。好主意,谢谢:-)我不知道为什么我自己没有想到它。第一个答案中提到的ActiveAndroid库基本上是从它的网站上出现的,用来做同样的事情,但同时将查询封装到类对象和属性中。看起来真的很酷。但对我来说,就目前而言,我很高兴自己上这门课——应该很有趣。。。我喜欢用android操作数据库。