我已经关注this tutorial,现在拥有自己的数据库合同和数据库助手类。我在Activity中有DBHelper变量,我在onCreate()
mDbHelper = new CustomDbHelper(getApplicationContext());
我的问题是:我应该关闭onStop()
中的dbHelper,还是不必要?
@Override
protected void onStop() {
super.onStop(); // Always call the superclass method first
mDbHelper.close();
}
答案 0 :(得分:1)
您不应该在onCreate
方法中声明它。
这方面最方便的方法是在需要访问它时初始化它。然后使用它并在使用后立即关闭。 onStop
或onDestroy
无法保证被调用。因此,在这些方法中处理这种资源并不好。
因此,如果您需要在应用程序中使用它三次,请将其初始化三次,同时关闭三次。从内存管理的角度来看,它也适用于应用程序开发。
答案 1 :(得分:0)
活动中的onStop()方法可能永远不会被调用,在系统内存不足的内存不足的情况下,只需在调用onPause()方法后杀死Activity 。 Android Document
通常我们可以在onDestroy()中回收资源,但是,也不能保证调用它们。