gpt4 book ai didi

java - Camera Intent 调用 onDestroy()

转载 作者:搜寻专家 更新时间:2023-11-01 09:47:15 25 4
gpt4 key购买 nike

在我的应用程序中,我想点击来自相机的照片,并希望在 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 不返回 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

关于java - Camera Intent 调用 onDestroy(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37546330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com