繁体   English   中英

在Android中完成后,会再次调用Camera Intent吗?

[英]Camera Intent is called again after finish it in Android?

我在android 4.2或更高版本上进行了测试,但没有错误。 但是当我在android 4.1上进行测试时,保存图像后会再次调用Camera Intent。 我在应用程序中的流程包括:MainActivity-Fragment-ActivityInfo-Camera当我在fragment上点击Camera按钮时,它会启动意图(ActivityInfo)并添加多余的内容(意图的名称和选择照相机或图库时的名称)。 在那之后,ActivityInfo启动,在onCreate函数中,我获得了额外的价值,并检查它是否是相机的名称,我将启动相机意图。 当我完成捕获照片并保存照片后,它完成了()相机意图并再次调用相机意图。 当我用电缆断开设备的连接时,就会出现此错误,当设备与电缆连接时,它会消失。

我无法调试,因为插入设备时没有任何问题。拔出插件时,它只会出现错误。 我已经在ImageActivity的onCreate中添加了一个行代码日志消息,当出现错误时,我将插入设备并捕获并保存图像,onCreate中的摄像机完成和日志消息出现在屏幕调试中,并且Camera再次出现。

我敢打赌,这个问题与特定的android版本无关,但是由于其他原因:您的活动可能会在图像捕获后恢复为前台时被破坏并重新创建。 并且由于您是从onCreate()调用startActivity()的,因此它将再次运行。

这是一个常见的错误:不处理和考虑saveInstanceState参数,该参数指示当前是否在系统杀死了活动/片段之后重新创建了活动/片段,而该活动/片段由于处于内存压力下而不处于前台。

有关更多信息-http://developer.android.com/training/basics/activity-lifecycle/recreating.html#RestoreState

用于检查savedInstanceState代码

if (savedInstanceState == null) {
            Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(cameraIntent, CAMERA_REQUEST);
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM