【问题标题】:How to return a cursor from database function to another function in activity如何将游标从数据库函数返回到活动中的另一个函数
【发布时间】:2022-03-17 22:33:36
【问题描述】:

我将光标从数据库中的一个函数返回到活动中的另一个函数。一切正常,但 log cat 给出错误(这不会导致任何问题)以停用或关闭被调用函数中的游标。如果我关闭它,我将无法在调用函数中访问它。我不知道 deactivate 是如何工作的。有时因为强制关闭我的数据库崩溃,是因为我的光标打开还是因为其他原因?

调用的函数在数据库类中:

public Cursor Settings() {
    mDB = DBHelper.getWritableDatabase();

    Cursor data_db = mDB.rawQuery("SELECT * FROM " + setting + " ;",
            null);

    return data_db;

}

调用函数:

public void insert()
{       
Cursor cr = db.Settings();//db is object of database

            if (cr == null)
                otd.insert_setting(value + "", save_path, option);
            else {
                otd.delete_setting();
                otd.insert_setting(value + "", save_path, option);
            }

}

【问题讨论】:

  • Logcat traces 会让你的问题一目了然,所以贴一样,也贴出你提到的问题
  • 可以分享两个函数的代码吗?
  • 从调用函数中关闭光标..
  • 访问后关闭光标。关闭 onPause() 或 OnDestroy() 方法上的光标。
  • 我将重新调整的光标存储到本地光标,本地光标我正在关闭本地光标而不是调用函数的光标会导致问题@DeepankerChaudhary

标签: android android-cursor cursor-position forceclose


【解决方案1】:

我们应该在使用数据库之前和之后打开和关闭数据库

public void insert()
{   
db.open();    
Cursor cr = db.Settings();//db is object of database

        if (cr == null)
            otd.insert_setting(value + "", save_path, option);
        else {
            otd.delete_setting();
            otd.insert_setting(value + "", save_path, option);
        }
db.close

}

【讨论】:

  • 您也应该在关闭数据库之前关闭光标。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-14
  • 2019-03-29
  • 2023-01-28
  • 1970-01-01
相关资源
最近更新 更多