Java 在不使用';Ext和Ormlitebase活动或活动
我使用OrmLite,我想在一个不扩展OrmLiteBaseActivity的类中获取helper类(然后获取一个dao类) 我阅读了上的文档,并查看了它们 因为我的课不是一项活动:Java 在不使用';Ext和Ormlitebase活动或活动,java,android,ormlite,Java,Android,Ormlite,我使用OrmLite,我想在一个不扩展OrmLiteBaseActivity的类中获取helper类(然后获取一个dao类) 我阅读了上的文档,并查看了它们 因为我的课不是一项活动: 它不是上下文,因此OpenHelperManager.getHelper无法工作 我知道我可以使用应用程序从应用程序的每个部分获取上下文,但是有更好的方法吗 它没有要覆盖的onDestroy 我可以将逻辑放在我的函数末尾: if (databaseHelper != null) { OpenHelperMa
if (databaseHelper != null) {
OpenHelperManager.releaseHelper();
databaseHelper = null;
}
但是如果我的班级变得更复杂,那么好的行为是什么呢注意。一般的经验法则是,您应该创建一个helper对象,然后在程序的所有部分完成后释放它。这意味着,如果您有不同的线程在使用helper,您需要保留某种用法计数器——可能是使用
AtomicInteger
。当每个类请求帮助器时,第一次创建它时,但每次之后计数器都会增加。当他们使用助手时,他们减少计数器。当计数器变为0时,从OpenHelperManager
释放它
它不是上下文,因此OpenHelperManager.getHelper无法工作
您需要以某种方式获取上下文。只要应用程序有效,就可以使用它
它没有要覆盖的onDestroy
但是您的程序的一部分确实有onDestroy
。您必须从具有onDestroy
的位置应用应用程序的其他部分——可能通过调用静态的destroy()
方法
但是如果我的班级变得更复杂,那么好的行为是什么呢
即使是复杂的应用程序,我也看不到上面提到的任何问题。如果您想设置一个register/unregister类型的配置,那么当您的类构造时,它们会向某个中心类注册,然后在最后关闭它们
希望这能有所帮助