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 片段确实是最后一个片段,则恢复它。
您的 Activity
的 onActivityResult()
将在 onRestoreInstanceState()
之后调用。
我有 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 片段确实是最后一个片段,则恢复它。
您的 Activity
的 onActivityResult()
将在 onRestoreInstanceState()
之后调用。