2013-05-16 14 views
5

調用。onActivityResult得到儘快相機意圖我用相機意圖啓動相機在我的應用程序,但只要意圖被炒魷魚的<code>onActivityResult</code>被解僱,我還沒有拍攝的照片尚未發送

當我拍張照片,選中它並返回到我的活動onActivityResult不會被調用所有

這裏是我如何啓動相機

PackageManager pm = getPackageManager(); 
    if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) { 
     Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

     File tempDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),"Mobile Map"); 
     if (!tempDir.exists()) { 
      if (!tempDir.mkdir()) { 
       Toast.makeText(this, 
         "Please check SD card! Image shot is impossible!", 
         Toast.LENGTH_SHORT).show(); 
      } 
     } 

     String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",Locale.US).format(new Date()); 
     File mediaFile = new File(tempDir.getPath() + File.separator+ "IMG_" + timeStamp + ".jpg"); 

     photoUri = Uri.fromFile(mediaFile); 
     camera.putExtra(MediaStore.EXTRA_OUTPUT, photoUri); 
     startActivityForResult(camera, CAMERA_REQUEST); 
    } else { 
     Toast.makeText(this,"This device does not have a rear facing camera",Toast.LENGTH_SHORT).show(); 
    } 

爲什麼只有onActivityResult照相機意圖啓動後調用?

+0

你說:「只要(相機)的意圖被炒魷魚的onActivityResult被炒魷魚」,但隨後「當我拍照時... onActivityResult根本不會被調用。」哪一個? – Neoh

+0

@Neoh兩個,當發送意圖它被調用,但是當我真正希望它被調用就像當我把我的照片也不會被調用 – tyczj

+0

當'onActivityResult()'叫,什麼是resultCode爲價值參數? –

回答

4

的問題是,在我的清單我有活動設置爲singleInstance,顯然startActivityForResult不喜歡那個

+2

是,如果你的活動有'launchMode =「singleInstance」'這意味着,當你啓動相機活動,相機活動將啓動到另一個任務。您不能在兩個不在同一任務中的活動之間使用'startActivityForResult()'進行通信。這實際上就是我思考的方向,爲什麼我問了關於結果代碼的問題。 0結果代碼是'RESULT_CANCELED'這說明你對'startActivityForResult()調用'立即取消了一些原因。 –

相關問題