我的应用程序中有一个中央数据库,一些不同的 Activity 需要访问它。
我应该通过将其设为静态来共享该对象吗?例如,在初始化数据库的 Activity 中,我这样做:
protected static appDatabase db;
然后其他人可以通过FirstActivity.db
访问它。
另一种选择是在每个需要它的 Activity 中创建 private appDatabase db
对象,但我怀疑打开多个 db 对象来访问相同的存储数据可能是一种浪费。
但是我对 java 了解不多,这就是为什么我要问的原因 - 执行此操作的首选方法是什么,为什么?
谢谢
最佳答案
你可以像这样使用单例;
private static DataHelper singleton;
public static DataHelper getDataHelper(Context context) {
if (singleton == null) {
singleton = new DataHelper(context);
OpenHelper openHelper = new OpenHelper(singleton.context);
singleton.db = openHelper.getWritableDatabase();
}
if(!singleton.db.isOpen()){
OpenHelper openHelper = new OpenHelper(singleton.context);
singleton.db = openHelper.getWritableDatabase();
}
singleton.context = context;
return singleton;
}
private DataHelper(Context context) {
this.context = context;
}
然后像这样调用你的单例类;
public DataHelper dh;
this.dh = DataHelper.getDataHelper(this);
关于java - 安卓/Java : accessing the same SQLite DB object from multiple activities,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14185932/