4

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

4

1 回答 1

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;
    }
}
于 2012-08-22T14:16:25.800 回答