android - 通过 Intent 拍照后调用的 Activity 被杀死/onCreate

标签 android android-camera android-activity android-camera-intent

我正在尝试使用 Intent 拍照。我的问题是,有时在拍照后,我调用 startActivityForResult 的 Activity 似乎已被破坏,因此再次调用 onCreate。

这是我点击一个imageview后拍照的代码,应该替换哪个图像:

if (!getPackageManager().hasSystemFeature(
                PackageManager.FEATURE_CAMERA)) {
            Util.makeLongToast(R.string.lang_no_camera);
        } else {
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(intent, TAKE_ITEM_PHOTO);
        }

...

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.v(TAG, "onactivityresult called");
    if (requestCode == TAKE_ITEM_PHOTO) {
        if (data != null) {

            imageUri = data.getData();


                try {
                    img_photo.setImageBitmap(Media.getBitmap(
                            getContentResolver(), imageUri));
            } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

        } else
            Log.w(TAG, "data is null");
    }
}

所以我尝试的只是拍照并用它替换 imageview 的图像。但在某些情况下,onCreate 是在 onActivityResult 被调用之后调用的,新图像会丢失。

非常感谢您的帮助。

最佳答案

实际上,相机会导致您的 Activity 的方向发生变化,这就是您的 Activity 被销毁和重新创建的原因。

将此添加到您的 list 文件中,它将防止方向更改,并且您的 Activity 不会被破坏和重新创建。

<activity
    android:name=".YourActivity"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:screenOrientation="portrait" >
</activity>

关于android - 通过 Intent 拍照后调用的 Activity 被杀死/onCreate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10411009/

相关文章:

android - Motionevent Action_MOVE 即使没有移动也会继续发射 X 和 Y

java - 如何使连拍模式可用于相机

java - android.os.NetworkOnMainThreadException 进入 AsyncTask

android - 在同一 Activity 中按下后退键,将一个 viewpager 的 fragment 替换为另一个 viewpager 的 fragment

java - Android 相机将无法工作。开始预览失败

java - Android如何加载新布局

android - 如何在 Android 中每 5 分钟刷新一次文件读取?

android - 如何从 Activity 中获取结果代码?

android - Livedata 观察者多次触发

android - 减小从 android 中的相机捕获的图像的大小