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