如建议所述,我正在使用单例模式获取助手(我确保在应用程序的onCreate()中首先创建它,使用应用程序上下文)。
然后从不同的[Intent]服务中使用此助手,但我对释放感到困惑:我已经阅读了这个related question,但ormlite关于
警告:当您的应用程序或服务终止或者您的代码不再以任何方式使用助手或派生DAO时,应在类似于onDestroy()的方法中调用此方法。不要在期望在应用程序终止之前再次调用{@link #getHelper(Context)}的情况下调用此方法。
上述警告的第二部分告诉我们,在应用程序终止之前如果我们期望再次调用getHelper(),就不要调用releaseHelper(),而如果在应用程序进程终止之前启动了另一个服务,这很可能是发生的!
此外,根据this post,在安卓上不释放助手听起来是安全的。
然后从不同的[Intent]服务中使用此助手,但我对释放感到困惑:我已经阅读了这个related question,但ormlite关于
releaseHelper()
的文档似乎是矛盾的:警告:当您的应用程序或服务终止或者您的代码不再以任何方式使用助手或派生DAO时,应在类似于onDestroy()的方法中调用此方法。不要在期望在应用程序终止之前再次调用{@link #getHelper(Context)}的情况下调用此方法。
上述警告的第二部分告诉我们,在应用程序终止之前如果我们期望再次调用getHelper(),就不要调用releaseHelper(),而如果在应用程序进程终止之前启动了另一个服务,这很可能是发生的!
此外,根据this post,在安卓上不释放助手听起来是安全的。
我是否误解了?
onDestroy
中关闭它。并在每个工作线程中获取另一个帮助程序,在finally
块中关闭它。但我不太理解不能重新打开
的部分。这是否意味着我不能在一个块中两次打开和关闭DatabaseHelper
?当引用计数为零时,如果我们再次调用getHelper
会发生什么? - Kimi Chiu