作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有这个方法:
public String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
不幸的是,编译器向我显示了一个问题:
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
因为 managedQuery()
已被弃用。
如果不使用 managedQuery()
,我该如何重写这个方法?
最佳答案
您可以将其替换为 context.getContentResolver().query
和 LoaderManager
(您需要使用兼容性包来支持 API 版本 11 之前的设备)。
但是,您似乎只使用了一次查询:您可能甚至不需要它。也许这会起作用?
public String getRealPathFromURI(Uri contentUri) {
String res = null;
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(contentUri, proj, null, null, null);
if(cursor.moveToFirst()){;
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
res = cursor.getString(column_index);
}
cursor.close();
return res;
}
关于java - 已弃用的 ManagedQuery() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12714701/
我是一名优秀的程序员,十分优秀!