SQLite-connection-Objekt geleakt - Android

Mache ich meine erste android-app, und ich nahm einige sqlite tutorials Erstens, dass lehrte mich, eine databaseHelper, extends SQLiteOpenHelper. Also mein databaseHelper nicht verlängern SQLiteOpenHelper. Bekomme ich ein sqlite-connection-Leck-Warnung in der Logcat so würde wie einige Ratschläge, was zu tun um das zu beheben.

Bekomme ich diesen Fehler:

02-01 21:39:50.740: W/SQLiteConnectionPool(32061): A SQLiteConnection object for database '/data/data/com.btf271.fashionassistant/databases/clothingManager' was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.

Mein databaseHelper Funktionen, die aufgerufen werden, wo das Leck:

 public List<Sticker> getObjectsByGenderAndCategory(String gender, String category) {
        List<Sticker> objects = new ArrayList<Object>();
        String selectQuery = String.format(
                "SELECT * FROM %s WHERE %s = \"%s\" AND %s = \"%s\"",
                TABLE_OBJECT, KEY_GENDER, gender, KEY_CATEGORY, category);

        Log.e(LOG, selectQuery);

        SQLiteDatabase db = this.getReadableDatabase();
        Cursor c = db.rawQuery(selectQuery, null);
     try{
        // looping through all rows and adding to list
        if (c.moveToFirst()) {
            do {
                Object o = createClothingItemJavaObject(c);

                // adding to object list
                objects.add(o);
            } while (c.moveToNext());
        }
     }finally {
           c.close();
db.close();
     }
        return objects;
    }

Fand ich dies werde ich versuchen morgen. Es ist spät.

Dank.

InformationsquelleAutor user3164083 | 2014-02-01

Schreibe einen Kommentar