Während ich mit verschiedenen Aktivitäten arbeite und sie für Ergebnisse starte, habe ich keine andere Wahl, als Absicht zu verwenden. Jetzt erfordert Absicht Kontext und das ergibt für mich keinen Sinn. Ich weiß, dass Kontext ermöglicht den Zugriff auf die Anwendungsressourcen aberWarum erfordert die Absicht Kontext?
Warum müssen Sie über die Anwendungsressourcen wissen, wenn eine Absicht nur ein einfacher Messenger ist?
Auch ich bin nicht so sicher, warum einige Menschen Absicht mit der getApplicationContext()
erstellen, während andere dies für den Aktivitätskontext verwenden ????
Schließlich bin ich nicht so sicher, wie die Aktivität, die für startActivityResult()
ruft einen Rückruf auf die Methode onActivityResult()
erhalten, wenn ich nicht das "dies" für den Kontext, sondern stattdessen den Anwendungskontext übergeben. Ich dachte, dass Sie das "Dies" verwenden oder den aktuellen Aktivitätskontext übergeben müssen, der startActivityResult()
aufgerufen hat, um einen Rückruf zu erhalten. Das ist nur gerade nach oben, oder? Wenn Sie eine Klasse übergeben, hat die andere Aktivitätsklasse einen Verweis auf Ihre Klasse und kann daher die Methode in Ihrer Klasse aufrufen (onActivityForResult(
). Dies ist jedoch nicht der Fall, also was fehlt mir?
Hallo, Ihre Antwort ist sehr klar und prägnant. Ich möchte jedoch nur eine kurze Erläuterung. Wenn ich also eine Aktivität starte, wird die Aktivität, die startActivity() aufruft, im Stack korrekt registriert? Wie weiß Android also, diese Aktivität zu referenzieren und sie in einem Stapel zu registrieren, wenn ich diese Aktivität nicht speziell übergebe. – Wowzer
Das System weiß, welche Aktivität oben auf dem Stapel liegt (Ihre Aktivität). Und wenn Sie eine neue beginnen, verwendet sie einen Komponentennamen, um sie zu identifizieren. Selbst wenn Sie eine implizite Absicht verwenden (eine mit Aktion anstelle eines expliziten Zielnamens), wird sie möglicherweise in einen bestimmten Komponentennamen aufgelöst. –