1

如何處理按下「後退」按鈕和相機按鈕?就像,我有一個開放的相機拍照,但沒有捕獲照片,我按下硬件「返回」按鈕。發生這種情況時,我的應用程序崩潰。如何處理相機打開時按下「後退」按鈕

我應該如何處理「後退」按鈕?

if (requestCode == 100) { 
     if (resultCode == RESULT_OK) { 
      if (intent == null) { 
       // The picture was taken but not returned 
       /*Toast.makeText(
         getApplicationContext(), 
         "The picture was taken and is located here: " 
           + fileUri.toString(), Toast.LENGTH_LONG) 
         .show(); */    
      } else { 
       // The picture was returned 
       Bundle extras = intent.getExtras(); 
       temp_photo = (Bitmap) extras.get("data"); 
       image1.setImageBitmap(temp_photo); 

      } 
     } 
     else if(resultCode == RESULT_CANCELED) 
     { 
       if (intent.resolveActivity(getPackageManager()) != null) { 
        startActivityForResult(intent, REQUEST_IMAGE_CAPTURE); 
       } 
       else 
       {     
        finish(); 
       } 
     } 
    }   
+0

歡迎來到堆棧溢出!我已經編輯了一下你的問題。當你遇到這個崩潰時,LogCat中有什麼? –

回答

0

您可以使用下面的方法來告訴應用程序當按下後退按鈕做什麼:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if ((keyCode == KeyEvent.KEYCODE_BACK)) { 
      onBackPressed(); 
     } 
     return true; 
    } 
    @Override 
    public void onBackPressed() { 
     super.onBackPressed(); 
// Enter your code here 

} 

希望這有助於你。

1

你不必處理背部按壓,這是由相機應用程序完成的。 因爲RESULT_CANCELED爲空,您的應用程序崩潰了。 如果你想再次「重新啓動」攝像機,你應該做一個新的意圖:

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     startActivityForResult(cameraIntent, CAMERA_REQUEST);