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

可以让一个Android应用程序中的所有Activity共享一个SQLiteOpenHelper实例吗?

程冥夜
2023-03-14
问题内容

将一个SQLiteOpenHelper实例作为一个子类化Application的成员,并让需要SQLiteDatabase实例的所有Activity从一个助手中获取它,是否可以?


问题答案:

拥有一个SQLiteOpenHelper实例可以帮助解决线程问题。由于所有线程将共享common SQLiteDatabase,因此提供了操作同步。

但是,我不会成为的子类Application。只需拥有一个静态数据成员即可SQLiteOpenHelper。两种方法都使您可以从任何地方访问某些内容。但是,只有的
一个 子类Application,这使您更难使用的 其他
子类Application(例如,GreenDroid需要一个IIRC)。使用静态数据成员可以避免这种情况。但是,Application
Context在实例化此静态对象SQLiteOpenHelper(构造函数参数)时,请务必使用,这样您就不会泄漏其他对象了Context


并且,在不处理多个线程的SQLiteOpenHelper情况下,每个组件仅使用一个实例就可以避免任何可能的内存泄漏问题。但是,实际上,您 应该
处理多个线程(例如a Loader),因此,此建议仅适用于琐碎的应用程序,例如某些书中的应用程序… :-)



 类似资料:
  • null 这是我第一次尝试将Firebase集成到我的一个项目中,因此一些关于实现这项任务的指导将是非常有用的。 谢了!

  • 我有一个使用Hibernate的Spring启动应用程序。我想运行该应用程序的多个实例,连接到同一个数据库。我不小心发现infinispan作为二级缓存。我想将infinispan实现为Hibernate的二级缓存。现在,如果我启动这个相同的Spring启动应用程序的多个实例,所有不同实例的infinispan缓存会相互共享吗?

  • 我们SqliteOpenHelper的基本组成是数据库的创建和更新,并提供了一个SqliteDatebase,使得我们可以用它来工作。查询可以被抽取出来放在其它的类中: class ForecastDbHelper() : ManagedSQLiteOpenHelper(App.instance, ForecastDbHelper.DB_NAME, null, ForecastDb

  • 我是DynamoDB新手,我们最近正在寻找将现有MySQL应用程序迁移到DynamoDB的选项。因为DynamoDB将每个AWS区域的表计数限制为256。我们有多个微服务,例如:订单服务、报价、产品成本计算、服务支持等。因此,现在即使对于单个客户,我们也需要创建微服务表。因此,我们很快就会达到256的上限。由于我是新手,我正在学习数据建模。是否有任何方法可以对数据库进行建模,以使其健壮,从而支持多

  • 我正在设计一个android应用程序,用户可以编写一个小文档,在其中附加一些图片,并与其他朋友分享。 我只知道Java和C,希望我能用Java构建应用程序。然而,我从来没有用其他语言编程过,所以我不知道如何使这个应用程序成为用户不仅可以单独使用,而且还可以共享他们想要的一些信息的东西。 我非常愿意学习新技术,但不会过度,因为我的时间和金钱有限。 我如何做到这一点,需要什么语言/技术来实现这一点?

  • 问题内容: 我知道Docker容器可以共享数据量,但是它们可以共享框架吗?例如,如果我有两个在IIS上运行的.NET服务,是否可以仅在它们之间共享框架? 问题答案: 是的,你可以的,你通常要做的是 备选方案A: 创建一个busybox映像并复制您的框架,将该位置公开为一个卷 虽然看起来像 将该图像作为服务添加到您的docker-compose.yml中,让我们说“ framework”,然后在您希