Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单击Backpressed(后退)按钮时,相机未完成_Java_Android - Fatal编程技术网

Java 单击Backpressed(后退)按钮时,相机未完成

Java 单击Backpressed(后退)按钮时,相机未完成,java,android,Java,Android,我想在启动方法中调用camera intent,它工作正常,但当我单击back按钮时,它不会从camera返回,因为Uri为空。我想通过单击“上一步”按钮转到上一个活动 @Override protected void onStart() { super.onStart(); if (uri==null){ Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); star

我想在启动方法中调用camera intent,它工作正常,但当我单击back按钮时,它不会从camera返回,因为Uri为空。我想通过单击“上一步”按钮转到上一个活动

 @Override
protected void onStart() {
    super.onStart();
  if (uri==null){
      Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
      startActivityForResult(takePictureIntent, CAMERA_REQUEST_CODE);
   }
}
@Override
public void onBackPressed() {
    super.onBackPressed();

}

创建一个带有静态布尔变量的助手类,如下所示

public class HelperUtil
    {
        public static boolean isCameraActivityBackPressed;
    }
然后稍微修改一下代码

    @Override
        protected void onStart()
        {
            super.onStart();
            if (uri == null)
            {
                if (HelperUtil.isCameraActivityBackPressed)
                {
                    // this block will execute when ActivityCamera back is pressed and uri is null

                    startActivity(new Intent(this, ReplaceWithYourActivity.class));

                } else
                {
                    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    startActivityForResult(takePictureIntent, CAMERA_REQUEST_CODE);
                }
            }
        }

        @Override
        public void onBackPressed()
        {
            super.onBackPressed();

            HelperUtil.isCameraActivityBackPressed = true;

            Toast.makeText(ActivityCamera.this, "onbackpressed", Toast.LENGTH_LONG).show();
            startActivity(new Intent(this, ActivityCamera.class));
            finish();
        }

为什么您要在
onBackPressed()
中输入代码?您可以忽略sirI认为您需要
onActivityResult
来收听backPressed on Camera意图。不是
startActivityForResult
的父活动。我认为没有必要在backpressed上添加方法,只需删除它直到不起作用Camera is system app这就是为什么我们的backpressed在这里不起作用。。您还有其他建议吗?如果您想通过单击“上一步”按钮转到上一个活动。您需要更改行startActivity(新的Intent(this,ActivityCamera.class));启动触觉(新意图(此,.PreviousActivity.class));ActivityCamera是我的活动的名称,如果您想通过单击“上一步”按钮(在ActivityCamera中)转到上一个活动(比如ActivityTest)。然后,替换行startActivity(新的Intent(this,ActivityCamera.class));启动触觉(新意图(ActivityCamera.this,ActivityTest.class));