Android закрыть управляемый курсор - PullRequest
0 голосов
/ 06 марта 2012

У меня есть код, который берет изображения из галереи, используя намерение галереи, и данные отправляются в мою деятельность в виде URI, как:

содержание: // СМИ / внешние / изображения / СМИ / 338

Мне нужно получить путь к этой картинке, и я использую

public String getRealPathFromURI(Uri contentUri) {
    String[] projection = {MediaStore.Images.Media.DATA};
    Cursor cursor = managedQuery(contentUri, projection, null, null, null);
    try {
        cursor.moveToFirst();
        return cursor.getString(0);
    } finally {
        cursor.close();
    }
}

но этот код вызывает сбой на Android ICS при попытке закрыть управляемый курсор. Это известная проблема ( см. Проблему ). Есть ли способ закрыть этот курсор, не вызывая сбой? Я не хочу выходить из этого метода, не закрывая курсор. Мне нужно поддержать Android 2.1 и выше. Спасибо

1 Ответ

0 голосов
/ 06 марта 2012

нашел его:

public String getRealPathFromURI(Uri contentUri) {
    String[] projection = {MediaStore.Images.Media.DATA};
    Cursor cursor = getContentResolver().query(contentUri, projection, null, null, null);
    try {
        cursor.moveToFirst();
        return cursor.getString(0);
    } finally {
        cursor.close();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...