Seltsames Problem mit der Absicht startActivity, die dazu führt, dass mein Scanner nicht richtig funktioniert

8

Also, nachdem ich meine Scanneraktivität mit

beendet habe %Vor%

gehe zu meiner Cam-Aktivität, damit ich ein paar Bilder machen und mit

zurückgehen kann %Vor%

erneut zur Scanneraktivität. Mein Scanner funktioniert nicht richtig aber wenn ich dann den Zurück-Knopf drücke, geht es wieder zurück zur Scanneraktivität anstatt meines Menüs, so scheint es, als ob die Scanneraktivität zweimal läuft und nur eine von ihnen funktioniert, aber ist hier, wo es mich verwirrt

Wenn nicht, drücken Sie die btn_aprove2 Taste und benutzen Sie stattdessen die Zurück-Taste Ich bekomme das gleiche Problem, aber hier ist meine Scan-Aktivität nicht zweimal ausgeführt, wenn ich die Zurück-Taste drücke, bringt es mich zurück zum Menü

ein Video des Problems

durch Entfernen meiner Bildschirmausrichtung aus dem Manifest (damit ich es drehen kann) Mein Scanner funktioniert jetzt aber nur, wenn ich zuerst in die Landschaft rotiere und dann zurück in das Bild rotiere

und ich sehe im log ist, dass es nur das oncreate aufruft, wenn es sich dreht und nur auf resume und pause auf der taste (startactivity / finnisch)

Ich bin völlig verloren, wie ich das zum Laufen bringen kann.

auf github mit einer API-Demo und Dokumentation im Wiki und mit den Klassen, die benutzt werden

>     
Kewin Björk Nielsen 24.03.2017, 12:19
quelle

1 Antwort

3

Wenn Sie einfach zur Kamera-Aktivität springen, um Daten zu erhalten, würde ich Ihnen empfehlen, die Aktivität für ein Ergebnis (startActivityForResult) zu starten, ohne die Scanner-Aktivität zu beenden. Dies würde Ihnen einen funktionierenden Rückstapel geben (indem Sie die Zurück-Taste verwenden, um von Kamera zu Scanner zurückzukehren).

Abgesehen davon, warum benutzt du i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ? Du beginnst eine neue Aktivität und beendest die alte. Ich verstehe nicht, warum diese Flagge wirklich gebraucht wird. Was ist Ihr android:launchMode in Ihrem Manifest und sind Sie sicher, dass Sie wissen, was FLAG_ACTIVITY_NEW_TASK tut und was Sie wollen?

Wie auch immer Sie uns gesagt haben, es sieht so aus, als ob Ihr Beispiel wirklich startActivityForResult() verwenden sollte, ohne finish() :

aufzurufen
  1. Drücken Sie die Menütaste bei einigen Aktivitäten
  2. Starte die Kamera und mache etwas
  3. Drücken Sie eine Taste, um Scanner
  4. zu starten
  5. Scannen Sie etwas und beenden Sie den Scanner mit dem Ergebnis (oder brechen Sie den Scanner ab, indem Sie auf "Zurück" klicken)
  6. Das Ergebnis des Scanners in der Kamera abrufen und etwas damit machen oder mit dem vorherigen Workflow fortfahren, wenn der Scanner abgebrochen wurde
  7. Wenn Sie mit Ihrem Workflow fertig sind, beenden Sie die Kamera, so dass Sie in Ihrer Aktivität enden, in der Sie die Kamera gestartet haben
xxtesaxx 29.03.2017 13:57
quelle