title: I want to restart camera source after it is stopped in the same Activity
body: <p>I made an application for barcode detector so I used SurfaceView to handle camerasource. After camera detects barcode and returns its value I make it to stop. There is no function to restart the camera source and surface view on any event just one fuction which is camersource.start();</p>
  
  <p><strong>It starts but the problem it works in the background and I can't see anything how to fix this problem? and display surfaceview and camera source again.</strong></p>
  
  <p>here is the whole code of the activity onCreate Method</p>
  
  <pre><code> @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
  
          surfaceView = (SurfaceView) findViewById(R.id.cameraPreview);
          txtShow = (TextView) findViewById(R.id.txtShow);
  
          startBarcode();
  
      }
  
      public void startBarcode() {
          barcodeDetector = new BarcodeDetector.Builder(this)
                  .setBarcodeFormats(Barcode.ALL_FORMATS)
                  .build();
          cameraSource = new CameraSource.Builder(this, barcodeDetector)
                  .setRequestedPreviewSize(800, 600)
                  .setAutoFocusEnabled(true)
                  .build();
  
          //Events
  
          surfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
              @Override
              public void surfaceCreated(SurfaceHolder holder) {
                  if (ActivityCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
                      //Make Request Runtime Permission
                      ActivityCompat.requestPermissions(MainActivity.this,
                              new String[]{Manifest.permission.CAMERA}, RequestCameraPermissionId);
                      return;
                  }
                  try {
                      cameraSource.start(surfaceView.getHolder());
  
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
              }
  
              @Override
              public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
                  if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
  
                      //Make Request Runtime Permission
                      ActivityCompat.requestPermissions(MainActivity.this,
                              new String[]{Manifest.permission.CAMERA}, RequestCameraPermissionId);
                      return;
                  }
                  try {
                      cameraSource.start();
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
              }
  
              @Override
              public void surfaceDestroyed(SurfaceHolder holder) {
                  cameraSource.stop();
              }
          });
  
          barcodeDetector.setProcessor(new Detector.Processor&lt;Barcode&gt;() {
  
              @Override
              public void release() {
  
              }
  
              @Override
              public void receiveDetections(Detector.Detections&lt;Barcode&gt; detections) {
                  final SparseArray&lt;Barcode&gt; qrCodes = detections.getDetectedItems();
                  if (qrCodes.size() != 0) {
                      txtShow.post(new Runnable() {
                          @Override
                          public void run() {
                              //create vibrate
                              Vibrator vibrator = (Vibrator) getApplicationContext().getSystemService(Context.VIBRATOR_SERVICE);
                              vibrator.vibrate(500);
  
  
                              //set result for Text View
                              txtShow.setText(qrCodes.valueAt(0).displayValue);
  
                              // surfaceView.setTop(200);
                              cameraSource.stop();
  
  
                              final MediaPlayer mp = MediaPlayer.create(MainActivity.this, R.raw.barcode);
                              mp.start();
  </code></pre>