我尝试使用:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://" + file_to_open), "image/*");
context.startActivity(intent);
或
Intent intent = new Intent(); intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(file_to_open)),"image/jpeg");
context.startActivity(intent);
它可以工作,但是当我尝试离开图像查看意图时,我得到一个 RuntimeException , StaleDataException 在游标关闭后尝试访问它
当我尝试启动不同的意图时,它有效,所以它与暂停或恢复我的活动无关
请有人帮忙
结果证明它也是其他意图,比如电子邮件意图,当取消时,会发生错误
答案 0 :(得分:0)
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
@SuppressWarnings("deprecation")
Cursor cursor = managedQuery(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String path = cursor.getString(column_index);
cursor.close();
cursor = null;
return path;
}
请注意,不推荐使用managedQuery,即使您决定使用它,也应该永远不要关闭游标或将其设置为null 如下面的答案所示: