我有这个方法:
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()
的情况下如何重写此方法
发布于 2012-10-04 02:45:17
您可以将其替换为context.getContentResolver().query
和LoaderManager
(您需要使用兼容包来支持API11之前的设备)。
但是,看起来您只使用了一次查询:您可能根本不需要它。也许这能行得通?
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;
}
发布于 2013-08-19 20:55:53
public void getBrowserHist(Context context) {
Cursor mCur = context.getContentResolver().query(Browser.BOOKMARKS_URI,
Browser.HISTORY_PROJECTION, null, null, null);
mCur.moveToFirst();
if (mCur != null && mCur.moveToFirst() && mCur.getCount() > 0) {
while (mCur.isAfterLast() == false) {
Log.e("hist_titleIdx",
mCur.getString(Browser.HISTORY_PROJECTION_TITLE_INDEX));
Log.e("hist_urlIdx",
mCur.getString(Browser.HISTORY_PROJECTION_URL_INDEX));
mCur.moveToNext();
}
}
}
发布于 2014-04-01 16:04:59
您需要初始化游标,因为它将在方法开始前或其他位置关闭
cursor = null;
public void method(){
// do your stuff here
cursor.close();
}
https://stackoverflow.com/questions/12714701
复制相似问题