我有 3 个 fragment A、B 和 C
A-->B-->C
我从 fragment C打开相机拍照,拍完后点击确定保存,于是又回到开始的 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()
方法。如果正在终止 Activity
以回收内存,也可能会调用 onStop()
。
根据您如何更改 fragment A、B 和 C 之间的 View ,它们的状态可能会在 onStop()
时丢失,从而导致您的应用程序重置为 fragment A,即 默认的。
要解决这个问题,您必须分别通过覆盖 onRestoreInstanceState()
和 onSaveInstanceState()
来实现状态保存和恢复(或者,取决于您希望 fragment 的持久性是,onCreate()
/onStop()
),如果它确实是最后一个,则恢复 C fragment 。
您的 Activity
的 onActivityResult()
将在 onRestoreInstanceState()
之后调用。
关于android - 拍照后返回 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42769436/