gpt4 book ai didi

java - Android 中的数据库访问

转载 作者:IT王子 更新时间:2023-10-29 06:20:13 25 4
gpt4 key购买 nike

我正在创建一个 Android 应用程序,它基本上是关于蘑菇的信息列表。我从 sqlite 数据库中获取此信息。我有一个全局单例,里面有一个服务类,我用它来访问我的数据库。几乎每个 Activity 都访问数据库。让我的数据库一直打开还是在我需要数据时打开和关闭它更好?

如果最好的做法是让它一直打开,我需要在哪里确保关闭它,如果我在 Activity 被销毁时让它打开,最坏的情况是什么?

最佳答案

此时您最好的选择是重构,以便您的应用程序通过 ContentProvider 访问数据库。您的 ContentProvider 实现是唯一具有打开数据库句柄的东西。

这给了你几个好处:

  • 只有一件事打开了数据库,所以您的问题就消失了。
  • 许多标准支持类可实现数据库管理等自动化操作。
  • 与标准的 Android 列表管理 View 更好地集成,这些 View 都旨在自动使用 ContentProviders 提供的光标。
  • 您的所有数据都可以通过 URI(通常采用“content://com.fnord.mushroom/mushroom/43”形式)进行寻址,这意味着其他应用程序也可以访问您的数据。

使用 ContentProvider,可以将三个或四个标准类粘合在一起以生成数据库的浏览器界面,而无需实际编写任何实际逻辑。

不利的一面是,ContentProvider 仅真正支持通过有限接口(interface)进行访问 --- 在 SQL 术语中,您将获得没有嵌套子句的 INSERT、SELECT、UPDATE 和 DELETE。如果您正在执行复杂的 SQL 操作,将请求从您的应用程序路由到 ContentProvider 并再次返回可能会有点痛苦。但是,大多数人不需要这样做(如果您这样做,自定义 Intent 是可行的方法)。

关于java - Android 中的数据库访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3391395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com