Java 摄像头意图调用onDestroy()
在我的应用程序中,我想单击PhotofromCamera,并想在Java 摄像头意图调用onDestroy(),java,android,android-camera-intent,Java,Android,Android Camera Intent,在我的应用程序中,我想单击PhotofromCamera,并想在onActivityResult()方法中从camera结果中获取内容URI 在我的应用程序中,我使用下面的方法获取内容URL Uri currImageURI; ArrayList<Uri> imageItems = new ArrayList<Uri>(); @Override protected void onActivityResult(int requestCode, int
onActivityResult()
方法中从camera结果中获取内容URI
在我的应用程序中,我使用下面的方法获取内容URL
Uri currImageURI;
ArrayList<Uri> imageItems = new ArrayList<Uri>();
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if((requestCode == SELECT_PICTURE_FROM_CAMERA && resultCode == RESULT_OK) || (requestCode == SELECT_PICTURE_FROM_LIB && resultCode == RESULT_OK)) {
currImageURI = data.getData();
imageItems.add(currImageURI);
Toast.makeText(UpdateMyServiceActivity.this, "Image added.", Toast.LENGTH_LONG).show();
}
}
这就是为什么我得到arrayList null
如何解决这个问题
currImageURI = data.getData();
如果您使用的是操作\u图像\u捕获
,则此代码不正确ACTION\u IMAGE\u CAPTURE
不会返回Uri
,尽管少数相机应用程序会返回。相反,您在动作图像捕获
意图
本身上提供额外输出
。然后,您保留在EXTRA\u输出中使用的任何值,并在onActivityResult()
中查找图像
这就是为什么我得到arrayList null
您的活动正在被销毁和重新创建,可能是因为您的进程在摄像头应用程序处于前台时被终止。这是完全正常的。当你的应用程序不在前台时,你的进程可以随时终止
如何解决这个问题
currImageURI = data.getData();
每次我从camera intent获取URI时,通过保存的实例状态Bundle
按住ArrayList
。示例URI:content://media/external/images/media/8484
@ChiragSavsani:你不会从任何Nexus设备上得到一个。如果您阅读了文档,ACTION\u IMAGE\u CAPTURE
没有文档化以返回Uri
。相机应用程序不需要返回Uri
.Oh。非常感谢你为这个话题指点。所以现在我必须改变我的代码。非常感谢您提供的信息。