我有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);
答案 0 :(得分:1)
使用Intent
调用相机会创建并将相机的Activity
带到您的前面,从而触发onPause()
方法。如果onStop()
被杀死以回收记忆,也可以调用Activity
。
根据您在片段A,B和C之间更改视图的方式,它们的状态可能会在onStop()
时丢失,从而导致应用程序重置为片段A,即默认值之一。
要解决此问题,您必须分别覆盖onRestoreInstanceState()
和onSaveInstanceState()
来实现状态保存和恢复(或者,根据您希望片段的持久性,onCreate()
/ {{ 1}}),如果它确实是最后一个,则恢复C片段。
onStop()
Activity
之后将调用onActivityResult()
onRestoreInstanceState()
。