Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在不使用';Ext和Ormlitebase活动或活动_Java_Android_Ormlite - Fatal编程技术网

Java 在不使用';Ext和Ormlitebase活动或活动

Java 在不使用';Ext和Ormlitebase活动或活动,java,android,ormlite,Java,Android,Ormlite,我使用OrmLite,我想在一个不扩展OrmLiteBaseActivity的类中获取helper类(然后获取一个dao类) 我阅读了上的文档,并查看了它们 因为我的课不是一项活动: 它不是上下文,因此OpenHelperManager.getHelper无法工作 我知道我可以使用应用程序从应用程序的每个部分获取上下文,但是有更好的方法吗 它没有要覆盖的onDestroy 我可以将逻辑放在我的函数末尾: if (databaseHelper != null) { OpenHelperMa

我使用OrmLite,我想在一个不扩展OrmLiteBaseActivity的类中获取helper类(然后获取一个dao类)

我阅读了上的文档,并查看了它们

因为我的课不是一项活动:

  • 它不是上下文,因此OpenHelperManager.getHelper无法工作

    我知道我可以使用应用程序从应用程序的每个部分获取上下文,但是有更好的方法吗

  • 它没有要覆盖的onDestroy

    我可以将逻辑放在我的函数末尾:

    if (databaseHelper != null) {
        OpenHelperManager.releaseHelper();
        databaseHelper = null;
    }
    
    但是如果我的班级变得更复杂,那么好的行为是什么呢


  • 注意。

    一般的经验法则是,您应该创建一个helper对象,然后在程序的所有部分完成后释放它。这意味着,如果您有不同的线程在使用helper,您需要保留某种用法计数器——可能是使用
    AtomicInteger
    。当每个类请求帮助器时,第一次创建它时,但每次之后计数器都会增加。当他们使用助手时,他们减少计数器。当计数器变为0时,从
    OpenHelperManager
    释放它

    它不是上下文,因此OpenHelperManager.getHelper无法工作

    您需要以某种方式获取
    上下文。只要应用程序有效,就可以使用它

    它没有要覆盖的onDestroy

    但是您的程序的一部分确实有
    onDestroy
    。您必须从具有onDestroy
    的位置应用应用程序的其他部分——可能通过调用静态的
    destroy()
    方法

    但是如果我的班级变得更复杂,那么好的行为是什么呢

    即使是复杂的应用程序,我也看不到上面提到的任何问题。如果您想设置一个register/unregister类型的配置,那么当您的类构造时,它们会向某个中心类注册,然后在最后关闭它们

    希望这能有所帮助