2011-06-04 55 views
0

我的相機意圖有點問題。據我所知,當相機方向改變時,活動重新開始。 Okej,我正在使用代碼波紋管。相機意圖問題,相機開始沒有請求

@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()); 
} 

}

@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()); 
} 

照片後拍攝,我按完成按鈕,我去SaveFileActivity。 Everyting工作正常,直到我嘗試從SaveFIleActivity去另一個活動,然後相機再次開始。我應該在哪裏尋找問題?也許我應該殺死相機的意圖,但是什麼時候?

回答

0

我懷疑你想使用更簡單的startActivity()finish()方法,而不是startActivityFromChild()finishFromChild()。不過,我承認,我對你實際使用的東西的用途有點不清楚。

+0

沒有結果那樣。好的,要更清楚一點,我有三個屏幕。 HomeActivity,CameraActivity,SaveFileActivity。主要活動是從哪裏按HomeActivity按鈕「theCamera」。然後我調用CameraActivity(代碼在這個問題中),然後按DONE按鈕它將進入SaveFileActivity。在SaveFileActivity中,我有按鈕「保存」,點擊這個按鈕後,它應該回到主HomeActivity。但是,它不是HomeActivity而是CameraActivity。我猜CameraActivity永遠不會被殺死。爲什麼? – Misko 2011-06-04 09:45:47

+0

「沒有結果」,因爲在使用中沒有解決問題,或者它沒有返回結果? – 2011-06-05 04:48:22

+0

從活動中調用「finish()」後,應從後退堆棧中移除,以便返回(通過完成「save」活動)不應再次啓動它。 – 2011-06-05 04:49:25