Android: How to close a cursor that returns from Class to Activity

Posted by Daniel on Stack Overflow See other posts from Stack Overflow or by Daniel
Published on 2012-06-09T16:22:35Z Indexed on 2012/06/09 16:40 UTC
Read the original article Hit count: 198

Filed under:
|
|
|
|

I have: Accounts.java

public class Accounts{

    private SQLiteDatabase dbConfig;

public Cursor list(Context context, String db, String where, String order) {

    DBHelper dbHelper = new DBHelper(context, db);
    dbConfig = dbHelper.getReadableDatabase();

    Cursor c = dbConfig.query("accounts", new String[]{ "iId","sName"}, where, null, null, null, order);
    return c;   
    }
}

and: MainActivity.java

Accounts account = new Accounts();
Cursor cursor =  account.list(getApplicationContext(), globalDB, null, null);
while (cursor.moveToNext()) { 
     int id = cursor.getInt(0);
     String name = cursor.getString(1);
}
cursor.close();

Running my application I get some logcat messages like:

close() was never explicitly called on database...

What is the best way to prevent it? How can I close a Cursor that returns from other class? Thanks

© Stack Overflow or respective owner

Related posts about java

Related posts about android