为什么不将OrmLiteSqliteOpenHelper绑定到Application而不是Activity?

Lar*_*erg 5 android ormlite dagger

在ORMLite文档中,建议OrmLiteSqliteOpenHelper为每个活动创建.因为获取帮助程序只需要一个Context对象,为什么不为整个Application对象创建一次数据库帮助程序?这样就可以使用Dagger(或其他注入框架)将数据库助手注入需要它的类中.

有没有理由不创建一个单一的应用程序范围的数据库帮助程序?是否最好让每个活动都有自己的数据库助手?我可以想象这会使助手的缓存大小变小,因为缓存只包含与其活动相关的对象.

Gra*_*ray 4

\n

在 ORMLite 文档中,建议为每个活动创建 OrmLiteSqliteOpenHelper。

\n
\n\n

这不应该意味着您需要为每个活动提供一个单独的帮助器实例。您当然可以/应该在整个应用程序中共享该帮助程序。

\n\n

引用文档:

\n\n
\n

我们建议使用 OpenHelperManager 来监视帮助程序 \xe2\x80\x93 的使用情况,它将在第一次访问时创建它,跟踪代码的每次使用它的部分,然后它将在上次帮助程序关闭时关闭释放。

\n
\n\n

创建OpenHelperManager并管理辅助单例

\n\n

如果您向我指出文档中指出每个活动需要不同的一点,我会调整它们?

\n