Android 关闭database的时机

通过query()方法返回一个cursor对象。但是database是在query()方法中打开的。
如果在query()方法中关闭database,返回的cursor对象就无法使用。
query()方法如下

public Cursor query(String table, String[] columns, String selection,
String[] selectionArgs, String groupBy, String having,
String orderBy, String limit) {
Cursor cursor = null;

    SQLiteDatabase database = mDataBaseOpenHelper.getReadableDatabase();

    cursor = database.query(table, columns, selection, selectionArgs,
            groupBy, having, orderBy, limit);

    database.close();

    return cursor;
}

Cursor cursor = null;//把这句话放在方法的外面,让它作为一个全局变量,你放在方法里它就是一个局部变量了;
当你这个方法执行完之后,它也就消失了

如果回答对您有帮助,请采纳