title: Intent started in onCreate called multiple times
body: <p>I am making an app that uses the camera and I would like the default camera open as soon as the app is opened. I currently start my image capture intent in the onCreate method of my main activity. This works perfectly fine sometimes, but other times the camera intent is launched 3 consecutive times.</p>
  
  <pre><code>public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
  
          mImageView = (ImageView) findViewById(R.id.imageView1);
          mImageBitmap = null;
  
          Button picBtn = (Button) findViewById(R.id.pictureButton);
          setBtnListenerOrDisable(
                  picBtn,
                  mTakePicOnClickListener,
                  MediaStore.ACTION_IMAGE_CAPTURE
          );
  
          if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.FROYO) {
              mAlbumStorageDirFactory = new FroyoAlbumDirFactory();
          } else {
              mAlbumStorageDirFactory = new BaseAlbumDirFactory();
          }
          dispatchTakePictureIntent(ACTION_TAKE_PHOTO_B);
      }
  
  private void dispatchTakePictureIntent(int actionCode) {
  
          Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
          File f;
          try {
              f = setUpPhotoFile();
              mCurrentPhotoPath = f.getAbsolutePath();
              takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
          } catch (IOException e) {
              e.printStackTrace();
              mCurrentPhotoPath = null;
          }
  
          startActivityForResult(takePictureIntent, actionCode);
      }
  
   protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          if (resultCode == RESULT_OK) {
              handleBigCameraPhoto();
          }
      }
  
  private void handleBigCameraPhoto() {
  
          if (mCurrentPhotoPath != null) {
              setPic();
              galleryAddPic();
              lastPhotoPath = mCurrentPhotoPath;
              mCurrentPhotoPath = null;
          }
  
      }
  
   private void setPic() {
  
          /* There isn't enough memory to open up more than a couple camera photos */
          /* So pre-scale the target bitmap into which the file is decoded */
  
          /* Get the size of the ImageView */
          int targetW = mImageView.getWidth();
          int targetH = mImageView.getHeight();
  
          /* Get the size of the image */
          BitmapFactory.Options bmOptions = new BitmapFactory.Options();
          bmOptions.inJustDecodeBounds = true;
          BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions);
          int photoW = bmOptions.outWidth;
          int photoH = bmOptions.outHeight;
  
          /* Figure out which way needs to be reduced less */
          int scaleFactor = 1;
          if ((targetW &gt; 0) || (targetH &gt; 0)) {
              scaleFactor = Math.min(photoW / targetW, photoH / targetH);
          }
  
          /* Set bitmap options to scale the image decode target */
          bmOptions.inJustDecodeBounds = false;
          bmOptions.inSampleSize = scaleFactor;
          bmOptions.inPurgeable = true;
  
          /* Decode the JPEG file into a Bitmap */
          Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions);
  
          /* Associate the Bitmap to the ImageView */
          mImageView.setImageBitmap(bitmap);
          mImageView.setVisibility(View.VISIBLE);
      }
  </code></pre>