在哪里打开和关闭数据库。在帮助程序类或活动中?

时间:2013-09-26 19:56:46

标签: android sqlite

在我的数据库帮助程序类中,我有db的打开和关闭方法。

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

但是,如果你认为这是一个过于重要的方法(它有点复杂),你可以在onCreate和onDestroy中打开/关闭,但重新发出onResume中的任何查询并提交onPause中的任何写入。但是,Betware将在UI线程上运行,因此查询尤其必须足够简单,以便在UI线程的时间限制内运行。

相关问题