Android 摄像机意图问题,摄像机未经请求启动

Android 摄像机意图问题,摄像机未经请求启动,android,android-camera-intent,Android,Android Camera Intent,我的相机有点问题。正如我所知,当摄像机方向改变时,活动就会重新启动。好的,我在用下面的代码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); app = (myApplication)getApplication(); if(savedInstanceState ==null ) getFullImage(null

我的相机有点问题。正如我所知,当摄像机方向改变时,活动就会重新启动。好的,我在用下面的代码

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    app = (myApplication)getApplication(); 

    if(savedInstanceState ==null ) getFullImage(null);
    else{
        String somevalue = savedInstanceState.getString("uri");
        getFullImage(somevalue);
        }
}

private void getFullImage(String testValue)
{   if(testValue == null){
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    file = new File(Environment.getExternalStorageDirectory(), UUID.randomUUID()+ ".jpg");
    outputFile = Uri.fromFile(file);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFile);
    startActivityForResult(intent, TAKE_PICTURE);

}else 
{   
    outputFile = null;
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    file = new File(testValue);
    outputFile = Uri.fromFile(file);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, testValue);
    startActivityForResult(intent, TAKE_PICTURE);
    finishFromChild(getParent());
}
}

}


拍摄完照片后,我按下“完成”按钮,进入SaveFileActivity。一切都很好,直到我尝试从SaveFIleActivity转到另一个活动,然后相机又开始了。我应该在哪里查找问题?也许我应该取消camera intent,但什么时候?

我怀疑你想使用更简单的
startActivity()
finish()
方法,而不是
startActivityFromChild()
finishFromChild()
。然而,我承认,我有点不清楚你到底在用那些东西。

这样没有结果。好的,更清楚地说,我有三个屏幕。HomeActivity、CameraActivity、SaveFileActivity。主要活动是家庭活动,我在这里按下“照相机”按钮。然后我调用CameraActivity(代码在这个问题中),在我按下DONE按钮后,它转到SaveFileActivity。在SaveFileActivity中,我有一个按钮“save”,单击该按钮后,它应该返回主HomeActivity。但不是家庭活动,而是CameraActivity。我想摄影师的活动永远不会被扼杀。为什么?“无结果”,因为使用它不能解决问题,或者它不返回结果?一旦从活动中调用“finish()”,它应该从后堆栈中删除,这样返回(通过完成“save”活动)就不会再次启动它。“无结果”“,as不能解决问题。:)也许在方法getFullImage中,我必须在再次启动活动之前杀死它?但我不知道怎么做。getFullImage方法启动了两次,第一次是值testValue=null,然后是某个值。啊,我怀疑第二次调用它是在您从照相机活动回来时,它需要重新创建您的活动。由于每次创建活动时,代码都会从相机中启动,因此您只是在第二次启动它。onActivityResult()在onResume()之前调用(如果系统由于内存原因必须销毁该活动,则可能在onCreate()之后立即调用)。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(resultCode == RESULT_CANCELED) {
        Log.i(TAG, "Back Button"); 
        finishFromChild(this);
    } 
    else
     if(requestCode == TAKE_PICTURE && resultCode == RESULT_OK)
        {   
    //I'm creating new file here (for this question is irelevant)
        } catch (IOException e) {

            e.printStackTrace();
        }

        Intent myIntent = new Intent(getBaseContext(), com.test.activities.SaveFileActivity.class);
        myIntent.putExtra("image", newPath);
        startActivityFromChild(this, myIntent, SAVE_ITEM);  
        finishFromChild(this);
    }
@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putString("uri",outputFile.getPath());
}