Return拍照后分片

Return to fragment after taking a picture

我有 3 个片段 A、B 和 C

A-->B-->C

我从片段C打开相机拍照,拍的时候点OK存起来,所以returns到开头fragment A 就像应用程序被关闭了,那么如何才能留在我打开相机的 fragment C 中呢?

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
                        String root = Utils.getFirstWritableDirectory().toString();
                        File myDir = new File(root+"/.XXXX_IMAGES");

                        if(!myDir.exists())
                            myDir.mkdirs();
                        File file = new File(myDir+File.separator + time+".jpg");
                        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
                        startActivityForResult(intent, XX);

使用 Intent 调用相机会创建相机的 Activity 并将其置于您的前面,因此会触发 onPause() 方法。 onStop() 也可能在 Activity 被杀死以回收内存时被调用。

根据您如何更改片段 A、B 和 C 之间的视图,它们的状态可能会在 onStop() 时丢失,导致您的应用程序重置为片段 A,默认一个。

要解决这个问题,您必须分别通过覆盖 onRestoreInstanceState()onSaveInstanceState() 来实现状态保存和恢复(或者,根据您希望片段的持久性,onCreate()/ onStop()),如果 C 片段确实是最后一个片段,则恢复它。

您的 ActivityonActivityResult() 将在 onRestoreInstanceState() 之后调用。