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

时间:2013-12-17 13:35:07

标签: android ormlite dagger

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

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

1 个答案:

答案 0 :(得分:4)

  

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

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

引用文档:

  

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

OpenHelperManager创建并管理帮助者 singleton

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