我有一个主要活动打开片段A,然后我打开一个菜单并打开片段B代替:
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment,String.valueOf(position)).addToBackStack(null).commit();
片段B正在使用带有以下内容的相机:
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
Random r = new Random();
mCurrentPhotoPath = Environment.getExternalStorageDirectory() + File.separator + r.nextInt(10000) + "image.jpg";
File file = new File(mCurrentPhotoPath);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(intent, 1);
onActivityResult:
File file = new File(mCurrentPhotoPath);
ivPhoto.setImageBitmap(BitmapFactory.decodeFile(file.getAbsolutePath()));
虽然在模拟器上它完美运行,但在真实设备上运行应用程序(三星galaxy s3,android 4.3)时,会发生两件奇怪的事情:
1)如果我拍照,该应用程序关闭,“不幸的......”弹出窗口出现没有明显的原因,我甚至不知道从哪里开始研究这个问题。
2)如果我点击“后退”按钮而不拍照,它会返回主活动/片段A!如果那时我再次调用片段B,图像(片段B)出现,但“背景”是透明的,我通过它看到片段A的遗骸。
setRetainInstance(真);为所有片段设置。我错过了什么? 感谢