0

在我的数据库助手类中,我有数据库的打开和关闭方法。

public void open() throws SQLException
{
    db = dbOpenHelper.getWritableDatabase();
}

public void close()
{
    dbOpenHelper.close();
}

而且在我的 DbHelper 类中,我有自定义方法来插入已删除等...

我的问题是,我应该在哪里打开和关闭数据库?在自定义方法或助手内部,或者在运行活动之前和之后的每个方法之前,或者在 onCreate() 和 onResume() 内部?

4

1 回答 1

1

最好的方法是将数据库包装在 ContentProvider 中。这样做有很多好处,包括将数据库与活动生命周期事件断开连接,并确保所有活动都看到一个通用的、最新版本的数据(例如,如果你正确地执行了一个持有游标的活动如果某些其他活动更改了可通过游标访问的数据,则将通知查询的结果。

但是,如果您觉得这种方法过于重量级(有点复杂),您可以在 onCreate 和 onDestroy 中打开/关闭,但在 onResume 中重新发出任何查询并在 onPause 中提交任何写入。但是,请注意您将在 UI 线程上进行操作,因此特别是查询必须足够简单,以便在 UI 线程的时间限制内进行操作。

于 2013-09-26T20:23:32.193 回答