android - Android关闭托管游标

标签 android crash cursor

我有一个代码,可以使用图库意图从图库中获取图像,并将数据作为uri发送到我的 Activity 中,例如:

content://media/external/images/media/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及更高版本。谢谢

最佳答案

找到了:

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

关于android - Android关闭托管游标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9581720/

相关文章:

android - java.lang.RuntimeException : Unable to start activity ComponentInfo Make sure to call FirebaseApp. initializeApp(Context) 首先

android - 如何修复env-> NewObject()上的JNI崩溃?

java - 如何使用 mongodb api Java 检索集合名称?

oracle - 如何使用普通游标中的值打开 sys_refcursor?

android - 某些高版本的OPPO和VIVO系统无法打开调试APK?

android - 重新创建 Activity 后,我用什么来恢复它的状态?

android - 多个 TextViews 更新很慢

c# - 在应用程序崩溃时执行代码

php - 光标是执行此操作的唯一方法吗?

带有过滤器的android Xml-List View