Camera Intent 调用 onDestroy()
Camera Intent call onDestroy()
在我的应用程序中,我想单击来自相机的照片,并希望在 onActivityResult()
方法中从相机结果中获取内容 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
中添加了uri(因为用户可以上传多张图片)。
我的应用程序中有保存按钮。
当用户点击保存按钮时,我将 imageItems
传递给 AsyncTask
以将图像上传到服务器。
但是问题来了
当用户点击保存按钮时,我得到 imageItems null。
我调试我的应用程序。
将 URI 添加到 ArrayList 后,将调用以下 Activity
个方法。
onResume()
onPause()
onStop()
onDestroy()
onCreate()
onStart()
onResume()
这就是我得到 arrayList null 的原因。
如何解决这个问题?
currImageURI = data.getData();
如果您使用的是 ACTION_IMAGE_CAPTURE
,则此代码不正确。 ACTION_IMAGE_CAPTURE
不是 return 而是 Uri
,尽管少数相机应用程序会。相反,您在 ACTION_IMAGE_CAPTURE
Intent
本身上提供 EXTRA_OUTPUT
。然后,你保留你在 EXTRA_OUTPUT
中使用的任何值,然后在 onActivityResult()
.
中寻找你的图像
That's why I am getting arrayList null.
您的 activity 正在被销毁并重新创建,可能是因为您的进程在相机应用程序处于前台时被终止。这是完全正常的。只要您的应用程序不在前台,您的进程就可以随时终止。
How to solve this issue?
通过保存的实例状态Bundle
保持ArrayList
。
在我的应用程序中,我想单击来自相机的照片,并希望在 onActivityResult()
方法中从相机结果中获取内容 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
中添加了uri(因为用户可以上传多张图片)。
我的应用程序中有保存按钮。
当用户点击保存按钮时,我将 imageItems
传递给 AsyncTask
以将图像上传到服务器。
但是问题来了
当用户点击保存按钮时,我得到 imageItems null。
我调试我的应用程序。
将 URI 添加到 ArrayList 后,将调用以下 Activity
个方法。
onResume()
onPause()
onStop()
onDestroy()
onCreate()
onStart()
onResume()
这就是我得到 arrayList null 的原因。
如何解决这个问题?
currImageURI = data.getData();
如果您使用的是 ACTION_IMAGE_CAPTURE
,则此代码不正确。 ACTION_IMAGE_CAPTURE
不是 return 而是 Uri
,尽管少数相机应用程序会。相反,您在 ACTION_IMAGE_CAPTURE
Intent
本身上提供 EXTRA_OUTPUT
。然后,你保留你在 EXTRA_OUTPUT
中使用的任何值,然后在 onActivityResult()
.
That's why I am getting arrayList null.
您的 activity 正在被销毁并重新创建,可能是因为您的进程在相机应用程序处于前台时被终止。这是完全正常的。只要您的应用程序不在前台,您的进程就可以随时终止。
How to solve this issue?
通过保存的实例状态Bundle
保持ArrayList
。