当前位置: 首页 > 面试题库 >

Android:从应用程序中的多个活动访问单个数据库?

景宏富
2023-03-14
问题内容

我有一个待办事项列表类型应用程序,可将所有注释数据存储在sqlite3数据库中。应用程序中的每个活动都需要访问数据库以实时编辑数据的不同部分。

当前,我让每个活动都打开自己的DBManager对象(我创建的用于管理数据库的帮助程序类)。但是,这导致了问题,我想要一个稍微更全局的访问解决方案,因此我不必继续打开/关闭/创建数据库。

我正在考虑几种选择,并且希望听到每种选择的利弊以及其他建议。

  1. 单例样式。有一个包装器类,该包装器类返回对唯一数据库管理器的引用,因此需要它的任何活动都可以使用它。

  2. 静态管理器。使manager类完全是静态成员,并使其在加载时打开数据库。任何需要它的人(所有人)都可以轻松访问。

  3. 在1和2之间合并。我可以创建一个数据库管理器类,该类初始化数据库的成员单例实例,并且所有数据操作方法都是静态的。然后,我什至不需要引用单例来访问数据库。我最喜欢此解决方案,请指出缺点。

有什么建议吗?


问题答案:

我认为内容提供者很复杂,如果您不与非您自己的活动共享,则不需要它。因此,我建议您首先使用单例类。然后,如果您有更多时间或需要它,请去内容提供商。

我已经成功地使用了一个单例达6个月,没有太多困难。(虽然我确实很小心地使其成为单例,但只有一个实例一次加载了数据)

辛格尔顿

  • 优点:易于实施
  • 优点:因为我使用了公共实例,所以可以轻松实现缓存,从而使应用程序不必经常访问数据库
  • 缺点:无法与外部活动共享您的数据

内容提供商

  • 优势:您可以与外部活动共享数据
  • 优势:您可以与Search API集成
  • 缺点:复杂,需要用不同的方式表示数据
  • 缺点:另一个花时间学习的Android API


 类似资料:
  • 如何通过Fit API for Android访问几个用户的数据(心跳、步数、...)?我的应用程序在一个activity中显示了一个用户列表,选择其中的一个应该会显示Google Fit的历史数据(心率、步数等)。你怎么能这么做? Google History查询是根据这篇文章进行的:查看Google Fit API History 我根据Google Fit API文档构建客户端(以登录到终端

  • 我试图用Firebase构建一个android应用程序,在一个应用程序中需要两个独立的数据库(教师和学生)。我在互联网上到处寻找解决方案,但我得到的只是这个解决方案--一个应用程序中的多个Firebase项目,这似乎是一个很好的解决方案,但我不明白。

  • 我正在开发两个应用程序。让第一个应用程序是APP1,第二个应用程序为APP2。现在在APP1中,我不提供任何用户权限,如INTERNET权限,但它将发送任何http url,如http://www.google.com我的第二个APP2将包含INTERNET等用户权限。Http请求将从APP1发送到APP2,APP2将响应该请求,然后将结果发送回APP1。最后APP1包含一个Web视图以显示结果。

  • 也就是说,我想创建应用程序,然后让这些应用程序访问一个项目的特定Firebase数据库。 查看Firebase Android文档,我找不到一种方法来使用下面的方法将数据发送到另一个项目中的另一个Firebase数据库,但其中的引用是另一个项目的。

  • 在我的项目中,我创建了3个Spring启动应用程序。第一个Spring启动应用程序有h2嵌入式数据库。现在我想直接从我的第二个和第三个Spring启动应用程序访问这个数据库,而无需编写任何服务来获取这些数据。所以有人能告诉我如何实现这一点吗?

  • 问题内容: 我已经在Sqllite Android应用程序中创建了一个数据库,并尝试在数据库中添加两个表,但是在创建该数据库时遇到了问题。仅创建第一张表。有谁能够帮我? 错误代码= 1否为客户提供此类表格 问题答案: 使用下面的类将值插入表