Ormlite for Android,值得释放助手



正如建议的那样,我正在使用单例来获取帮助程序(我确保它首先是使用应用程序上下文在我的应用程序的onCreate()上创建的)。

然后从不同的 [Intent] 服务中使用此帮助程序,但我对发布感到困惑:我已经阅读了这个相关问题,但 ormlite 关于releaseHelper()的文档似乎相互矛盾:

警告:当您的应用程序或服务终止或您的代码不再以任何方式使用帮助程序或派生的 DAO 时,应在 onDestroy() 类型的方法中调用它。如果您希望在应用程序终止之前再次调用 {@link #getHelper(上下文)},请不要调用此方法。

上面警告的第二部分告诉我们,如果我们希望在应用程序终止之前再次调用 getHelper(),请不要调用 releaseHelper(),如果在应用程序的进程终止之前启动另一个服务,则很可能就是这种情况!

此外,根据这篇文章,不释放助手在 Android 上听起来很安全。

我是不是误会了?

我必须同意这种混乱。

http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_4.html#Use-With-Android 状态在每个活动/片段的 onDestroy() 上调用 OpenHelperManager.releaseHelper(),但 releaseHelper() 上的警告注释清楚地告诉您仅在应用程序终止时才使用它。

也许 releaseHelper() 注释中的警告不再相关? 而凯文·加利根的警告帖也因他离开项目后的变化而不再相关?

我是不是误会了?

不确定你是否理解。

数据库关闭后(当应用程序的最后一部分释放DatabaseHelper时),将无法重新打开数据库。 该警告只是为了确保如果某些后台任务适用于数据库,则在对 releaseHelper() 进行最终调用,它不应请求帮助程序。 如果您有后台任务,那么他们应该获取帮助程序并按住它,直到任务完成。

最新更新