Ist es möglich zu wissen, ob eine Aktivität als Ergebnis aufgerufen wurde, indem Sie verwenden startActivityForResult()
oder wenn nur mit der Verwendung begonnen wurde startActivity()
?
Ich muss dies kontrollieren, wenn es nach dem Ergebnis verlangt wird, wird das Verhalten anders sein.
Als Ihre Aktivität gerade gestartet wurde startActivity()
a getCallingActivity()
-Methode in der Zielaktivität zurück null
.
Als es angerufen wurde startActivityForResult()
Es gibt den Namen der Anrufaktivität zurück.
Siehe Dokumente für getCallingActivity()
:
Gibt den Namen der Aktivität zurück, die diese Aktivität aufgerufen hat. Hier sind die Daten setResult()
wird zugeschickt. Sie können diese Informationen verwenden, um zu überprüfen, ob der Empfänger die Daten erhalten darf.
Hinweis: Wenn die aufrufende Aktivität kein Ergebnis erwartet (das heißt, sie hat die startActivityForResult(Intent, int)
Formular, das einen Anforderungscode enthält), dann ist das aufrufende Paket null.
Kehrt zurück
Der Komponentenname der Aktivität, die Ihre Antwort erhält, oder null, wenn keine vorhanden ist.
Sie können einen booleschen Wert analysieren, indem Sie extra in eine Absicht einfügen.
//First Activity
Intent i = new Intent(FirstActivity.this, SecondActiviy.class);
boolean isForResult = true;
i.putExtra("for-result", isForResult);
Dann erhalten Sie bei der zweiten Aktivität den Wert:
//Second Activity
boolean isForResult = getIntent().getBooleanExtra("for-result" , false);
Auf diese Weise wissen Sie mit einem globalen booleschen Wert, ob Sie eine Aktivität starten, um ein Ergebnis zu erhalten. Wenn Sie kein boolesches Extra setzen, ist der Standardwert falsch. Wich bedeutet.
//Not necesary at all.
boolean isForResult = false;
Sie müssen einen falschen booleschen Wert nicht analysieren.