2017-04-26 7 views
0

Wenn Klicken auf eine Schaltfläche auf dem Bildschirm, Kamera wird geöffnet. Ich habe in dieser Frage nur wenige Beiträge zum Stacküberlauf gesehen. Ich versuchte finish(), finishActivity(), onBackPressed() Methoden nach dispatchTakePictureIntent(); in onClick Methode, aber dann fehlgeschlagen! Es Exits meine gesamte App.Wie gehe ich zurück zum vorherigen Bildschirm beim Drücken der Zurück-Taste

Das sind die Auszüge aus meinem full code:

Der Knopf onClick Methode:

mCaptureImage.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Log.d("TAG", "Camera opened"); 
      dispatchTakePictureIntent(); 
     } 
    }); 

Diese Methode löst Intent:

private void dispatchTakePictureIntent() { 
     Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     // Ensure that there's a camera activity to handle the intent 
     if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
      // Create the File where the photo should go 
      File photoFile = null; 
      try { 
       photoFile = createImageFile(); 
      } catch (IOException ex) { 
       // Error occurred while creating the File 
      } 
      // Continue only if the File was successfully created 
      if (photoFile != null) { 
       photoURI = FileProvider.getUriForFile(this, 
         "com.pc.android.fileprovider", 
         photoFile); 
       takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI); 
       startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO); 
      } 
     } 
    } 

Meine Frage ist, wie gehe ich zurück zum vorherigen Bildschirm, wenn die Taste gedrückt wird, wenn ich auf C bin Ameras Absicht.

+0

Sie brauchen nichts zu tun haben. Android-System wird das für Sie behandeln. –

+0

Aber wenn ich Zurück-Taste im Kamera-Modul drücke, verlässt es meine App. @NaweenNiroshan – Chip

+0

Überprüfen Sie in AndroidManifest, ob Sie Android: noHistory = "True" für Ihre Aktivität festgelegt haben. –

Antwort

2
Thus you have to do Nothing : 

aufgerufen wird, man kann bei externen Aktivitäten Methoden außer Kraft setzen Sie anrufen. Wenn ein Benutzer jedoch eine Aktivität zurückgibt, die mit startActivityForResult aufgerufen wurde, wird der Antwortcode RESULT_CANCELLED in der Regel zurückgegeben (möglicherweise gibt es Fälle, in denen dies nicht der Fall ist). In Ihrem onActivityResult Methode einfach überprüfen Sie die RESULT_CANCELLED Code und nennen, wie Funktionalität, die Sie

0

Könnten Sie versuchen startActivityForResult verwenden und überprüfen, ob Ihr onActivityResult oder auf der Rückseite drücken Aktivität des onResume aufgerufen wird

+0

@PC hilft es? – Aditi

Verwandte Themen