android - 拍照后返回 fragment

标签 android android-fragments android-camera

我有 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 。

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

关于android - 拍照后返回 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42769436/

相关文章:

Android:如何清除自定义 ListView 中的所有项目

android - ZXing 前置摄像头自动启动

android - SurfaceView 在方向改变时崩溃

java - 将底部导航 Activity 转换为 Fragment

android-layout - 滚动时 View 寻呼机中的相机 SurfaceView 闪烁

android - 使用 android camera2 API 显示相机提要

android - Android 系统服务监听器是否已本地化到我的应用程序实例?

android - Android 和 iOS 的 Spring Boot 休息安全性

java - 在没有 Mosby 的 Android 中实现 MVI 架构

java - Android 应用程序强制关闭(检索数据)