Wie kann ich erhalten CameraActivities in einer anderen Aktivität führen (das heißt nicht in der Einleitung eins)?

StackOverflow https://stackoverflow.com/questions/2435050

  •  19-09-2019
  •  | 
  •  

Frage

Ich habe Aktivität A bekam, die die Kamera Absicht Brände über:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, REQUEST_CAMERA);

Nachdem das Bild aufgenommen wird ich ganz einfach das Bild greift in:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)

Aber ich mag das Ergebnis in Aktion B erhalten, in dem das Bild bearbeitet werden kann. Im Moment bin ich das Ergebnis in Aktivität A empfangen und übergeben es über Aktivität B die Ergebnisse zeigen, die GUI von Aktivität A für kurze Zeit:

Intent i = new Intent().setAction("DisplayJPEG");
i.setClass(this, EditImageActivity.class);
i.putExtra("IMAGE_URI", uri);
startActivityForResult(i, REQUEST_EDIT_IMAGE);

Natürlich werde ich das Ergebnis von Aktivität B in Aktivität A muß, nachdem das Bild bearbeitet wurde. Aber das sollte mit der Arbeit:

setResult(resultCode, data);

So hat es eine Möglichkeit zu sein, zu tun, was ich brauche. Bitte zeigen Sie mir in die richtige Richtung.

War es hilfreich?

Lösung

Haben Sie ACTIVITYB versucht, starten, und in ACTIVITYB onCreate Ereignis Start der Kamera Intent?

Andere Tipps

Sie können technisch nicht tun, was Sie fragen. Sie werden einen Weg finden müssen, um weiterhin den Weg vorbei Sie sind und verstecken die Benutzeroberfläche oder tun, wie Pentium sagt und tun es umgekehrt.

Edit: Nevermind, ich falsch verstanden, wie das funktioniert. Was tatsächlich passiert ist, dass Sie Aktivität A verwenden Aktivität B Ergebnis zu beginnen, aber dann, wenn Aktivität B Aktivität C beginnen muss weiterhin Verarbeitung, was Aktivität A wollte, können Sie FLAG_ACTIVITY_FORWARD_RESULT verwenden Aktivität C Rückkehr sein Ergebnis Aktivität A nicht B zu machen .


Ich habe nicht in diese mehr als einen kurzen Blick aussah, aber ich bemerkte eine Intent-Flag genannt FLAG_ACTIVITY_FORWARD_RESULT, die in der Dokumentation nach:

If set and this intent is being used to launch a new activity from an existing one, then the reply target of the existing activity will be transfered to the new activity. This way the new activity can call setResult(int) and have that result sent back to the reply target of the original activity.

Wie ich schon sagte, habe ich nicht damit experimentiert, aber das scheint darauf hinzudeuten, dass Sie Ihre Kamera Absicht von Aktivität A starten könnten, aber haben sie ihr Ergebnis Aktivität B übermitteln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top