4

我不仅需要从活动中访问帮助器,还需要从广播接收器和异步任务中访问帮助器。我是对的,如果我使用 OrmLiteBaseActivity 来接近它是使用这种方法:

OpenHelperManager.getHelper(context, DatabaseHelper.class);
OpenHelperManager.releaseHelper();

里面不是 Activity 类?

编辑:

我了解助手生命周期由OrmLiteBaseActivity. 我要问的是如何处理活动之外的助手生命周期。例如,我需要从BroadcastReceiver或访问数据库AsyncTaskOpenHelperManager.getHelper(context, DatabaseHelper.class);当我在另一个线程中启动一些数据库内容时,以及OpenHelperManager.releaseHelper();当我完成所有数据库工作并想要发布帮助程序时,使用 实现此目的是否是正确的方法?

4

1 回答 1

5

我是对的,如果我使用 OrmLiteBaseActivity 来接近它就是使用这种方法......

是的,使用OpenHelperManager.getHelper(...)andreleaseHelper()方法是正确的方法。引用ORMLite Android 文档

如果您不想扩展 OrmLiteBaseActivity 和其他基类,则需要复制它们的功能。您需要OpenHelperManager.getHelper(Context context, Class openHelperClass)在代码开头调用,保存帮助程序并尽可能多地使用它,然后OpenHelperManager.release()在完成后调用它。您可能希望在您的课程中包含以下内容:

文档中的示例代码是:

private DatabaseHelper databaseHelper = null;

@Override
protected void onDestroy() {
    super.onDestroy();
    if (databaseHelper != null) {
        OpenHelperManager.releaseHelper();
        databaseHelper = null;
    }
}

private DBHelper getHelper() {
    if (databaseHelper == null) {
        databaseHelper =
            OpenHelperManager.getHelper(this, DatabaseHelper.class);
    }
    return databaseHelper;
}
于 2013-07-29T15:43:07.553 回答