gpt4 book ai didi

java - 安卓/Java : accessing the same SQLite DB object from multiple activities

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:00:30 25 4
gpt4 key购买 nike

我的应用程序中有一个中央数据库,一些不同的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com