即使在调用finish()后,自定义CameraActivity也显示在屏幕上

时间:2016-11-09 12:08:45

标签: android android-fragments android-camera

我有两项活动:HomeActivityCameraActivityHomeActivity使用带有标记CameraActivityIntent.FLAG_ACTIVITY_NEW_TASK的意图调用startActivityForResultCameraActivity有一个打开自定义相机的片段。我给了一个按钮来捕捉图像。如果用户单击按钮,则会调用摄像机的回调,并在onPictureTaken(byte[] data)中使用getActivity().finish()并将图像文件的路径返回到HomeActivity,并在图像文件中编写数据数组并完成活动。在UI上显示它。

现在的问题是:

当我从getActivity().finish()中的片段调用CameraActivity时,它会调用onActivityResult的{​​{1}}。路径显示在HomeActivity上。日志也可以从TextView正确打印。但在屏幕相机运行。每次需要按下后退按钮才能结束HomeActivity。 假设我一次捕获图像,但由于屏幕上的相机仍然在运行,我试图捕获它两次,控件在CameraActivity上返回,但HomeActivity没有被调用进行第二次捕获。

2 个答案:

答案 0 :(得分:4)

调试代码。我认为startActivityForResult被多次调用。

答案 1 :(得分:1)

当我在Activity中使用片段时,当配置发生更改时,重新启动Activity并附加片段的新实例,因为它继续在屏幕上显示未完成的片段。 我通过在配置更改上分离片段来解决这个问题。