我有一个活动,其中包含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;
}
答案 0 :(得分:1)
Alex Lockwood recommends using a singleton - 我试图遵循他的方法,它简化了设置。没有必要用每个片段关闭DB。你可以在每个onCreate中调用它。