何时何地创建新的SQLite数据库帮助程序?

时间:2014-08-04 21:12:15

标签: android sqlite android-fragments android-lifecycle

我有一个活动,其中包含2个片段。它们都使用活动创建的数据库帮助程序。其中一个片段还创建了一个自定义列表适配器,使用了帮助程序。

现在我的问题是,这些元素(活动,片段,适配器)中的每一个都应该创建自己的帮助器,还是可以/它们应该共享活动创建的那个?

也许我的方法很糟糕,你会建议什么呢?

这里(在我的活动中)我正在实例化帮助器(需要onRestart,因为onStart也需要DB访问):

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    dbHelper = new DBHelper(this);
}

@Override
protected void onRestart() {
    super.onRestart();
    if (dbHelper == null)
        dbHelper = new DBHelper(this);
}

@Override
protected void onResume() {
    super.onResume();
    if (dbHelper == null)
        dbHelper = new DBHelper(this);
}

@Override
protected void onPause() {
    super.onPause();
    dbHelper.close();
    dbHelper = null;
}

1 个答案:

答案 0 :(得分:1)

Alex Lockwood recommends using a singleton - 我试图遵循他的方法,它简化了设置。没有必要用每个片段关闭DB。你可以在每个onCreate中调用它。