gpt4 book ai didi

java - Android:从应用程序中的多个 Activity 访问单个数据库?

转载 作者:IT王子 更新时间:2023-10-29 06:19:37 26 4
gpt4 key购买 nike

我有一个 todo 列表类型的应用程序,它将所有笔记数据存储在 sqlite3 数据库中。应用程序中的每个 Activity 都需要访问数据库以实时编辑数据的不同部分。

目前,我让每个 Activity 都打开自己的 DBManager 对象(我创建的用于管理数据库的助手类)。但这会导致问题,我想要一个稍微更全局的访问解决方案,这样我就不必继续打开/关闭/创建数据库。

我正在考虑多种选择,并想听听每种选择的优缺点以及其他建议。

  1. 单例风格。有一个包装类返回对唯一数据库管理器的引用,以便任何需要它的 Activity 都可以使用它。

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

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

建议?

最佳答案

在我看来,Content Provider 很复杂,如果您不与不属于您自己的 Activity 共享,则不需要它。因此,我建议您首先使用单例类。然后,如果您有更多时间或需要它,请去找 Content Provider。

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

单例

  • 优点:易于实现
  • 优点:因为我用了一个普通的例如,我可以实现缓存很容易,因此使申请不必对数据库做经常
  • 缺点:无法与外部 Activity 共享您的数据

内容提供者

  • 优点:您可以共享您的数据与外部 Activity
  • 优点:您可以与搜索 API
  • 缺点:复杂,需要以不同的方式表示您的数据方式
  • 缺点:又一个 Android API花时间学习

关于java - Android:从应用程序中的多个 Activity 访问单个数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1905846/

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