拍照后返回片段

时间:2017-03-13 17:08:17

标签: android android-fragments android-camera

我有3个片段A,B和C

A - > B - > C

我从片段 C 打开相机拍照,当我拍摄时,我点击OK存储它,所以它返回到开始片段 A 就像应用程序已经关闭一样,那么该怎么办才能保留我打开相机的片段 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);

1 个答案:

答案 0 :(得分:1)

使用Intent调用相机会创建并将相机的Activity带到您的前面,从而触发onPause()方法。如果onStop()被杀死以回收记忆,也可以调用Activity

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

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

onStop() Activity之后将调用onActivityResult() onRestoreInstanceState()