在@Singleton上发布ORMLite帮助器

时间:2012-08-22 07:56:05

标签: android guice ormlite roboguice

我有一个@Singleton类,我注入了一个OrmLiteSqliteOpenHelper的实例。我真的需要拨打OpenHelperManager.releaseHelper()吗?如果我这样做,应该在哪里以及如何进行,因为该类没有扩展任何我可以到达onDestroy的Android基类?

1 个答案:

答案 0 :(得分:3)

有一个ORMLite示例Android项目,演示了这个名为HelloAndroidNoBase的项目。我查了一下。

Activity的相关代码部分包含在下方。您需要在每个Activity或其他使用数据库的类中使用此类代码。

如果您的班级没有onDestroy()方法,那么您需要添加一个并从具有onDestroy()的其他类之一调用它。主Activity是一个很好的地方。因此,当应用程序关闭时,您的MainActivity.onDestroy()会调用yourClass.onDestroy()

public class HelloNoBase extends Activity {

    private DatabaseHelper databaseHelper = null;

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

    private DatabaseHelper getHelper() {
        if (databaseHelper == null) {
            databaseHelper = OpenHelperManager.getHelper(this,
                DatabaseHelper.class);
        }
        return databaseHelper;
    }
}