android关闭托管游标

时间:2012-03-06 10:23:04

标签: android crash cursor

我有一个代码,它使用图库意图从图库中获取图像,数据像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崩溃。这是一个已知问题(see issue)。有没有办法关闭这个光标而不会导致崩溃?我不想在不关闭光标的情况下退出此方法。我需要支持android 2.1及以上版本。感谢

1 个答案:

答案 0 :(得分:0)

发现它:

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