0

データベース内のある関数からアクティビティ内の別の関数にカーソルを返しています。すべて正常に動作しますが、ログの猫は、呼び出された関数でカーソルを非アクティブ化または閉じるエラー (問題は発生していません) を返します。閉じると、呼び出し関数でアクセスできなくなります。非アクティブ化の仕組みがわかりません。また、強制終了によってデータベースがクラッシュすることがあります。それは、カーソルが開いているためですか、それとも他の理由ですか?

呼び出された関数は Database クラスにあります:

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);
            }

}
4

1 に答える 1

0

データベースを使用する前後にデータベースを開いたり閉じたりする必要があります

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

}
于 2013-06-29T06:15:12.550 に答える