0

我读到最好SQLiteOpenHelper在扩展的类中只使用一个实例Application

public class MyApplication extends Application {

    private static SQLiteOpenHelper dBHelper;

    @Override
    public void onCreate() {
        super.onCreate();
        dBHelper = new DBHelper(this);
    }

    public static SQLiteDatabase getDB() {
        return dBHelper.getWritableDatabase();
    }
}

但在那种情况下,我应该在哪里关闭它?

谢谢

七月

4

2 回答 2

0

您应该始终拥有一个且只有一个SQLOpenHelper实例,并且永远不要关闭它。更详细的解释可以在这里这里找到

于 2013-01-21T17:45:45.450 回答
0

onTerminate()您可以在子类的方法中关闭数据库Application。如果您的应用程序可以处理关闭的数据库(通过重新打开...),您可以在onLowMemory()方法中额外关闭(但这不会释放太多内存)。

更重要的是,如果您使用完所有数据库游标,请关闭它们。

编辑

vmirnonov 是对的,onTerminate()只在模拟器中调用,所以忽略那部分答案。

于 2013-01-21T17:51:35.370 回答