0

我已经按照本教程进行操作,现在有了自己的 DB Contract 和 DB Helper 类。我在 Activity 中有 DBHelper 变量并将其设置为onCreate()

mDbHelper = new CustomDbHelper(getApplicationContext());

我的问题是:我应该关闭 dbHelperonStop()还是没有必要?

 @Override
    protected void onStop() {
        super.onStop();  // Always call the superclass method first

        mDbHelper.close();
    }
4

2 回答 2

1

你不应该在onCreate方法中声明它。

在这方面最方便的方法是在需要访问它时对其进行初始化。然后使用它并在使用后立即关闭。onStoponDestroy不保证被调用。所以在这些方法中处理这种资源是不好的。

因此,如果您需要在应用程序中使用它 3 次,则初始化它 3 次也关闭 3 次。从内存管理的角度来看,它也有利于应用程序开发。

于 2015-11-22T05:28:33.483 回答
0

Activity 中的 onStop() 方法可能永远不会被调用,在系统没有足够内存的低内存情况下,它会在调用其 onPause() 方法后简单地杀死您的 Activity。安卓文档

通常我们可以在 onDestroy() 中回收资源,但是也不能保证调用。

于 2015-11-22T04:56:41.210 回答