Est-il possible de savoir si une activité a été appelée pour résultat, en utilisant startActivityForResult()
ou si elle a seulement été lancée en utilisant startActivity()
?
Je dois contrôler cela, si son résultat est recherché, le comportement sera différent.
Lorsque votre activité a été démarrée uniquement par startActivity()
une méthode getCallingActivity()
dans l'activité cible renverra null
.
Lorsqu'il a été appelé par startActivityForResult()
, il renverra le nom de l'activité appelante.
Voir les documents pour getCallingActivity()
:
Renvoie le nom de l'activité qui a appelé cette activité. C'est à qui les données de
setResult()
seront envoyées. Vous pouvez utiliser ces informations pour valider que le destinataire est autorisé à recevoir les données.Remarque: si l'activité appelante n'attend pas de résultat (c'est-à-dire qu'elle n'a pas utilisé le formulaire
startActivityForResult(Intent, int)
qui inclut un code de demande), alors le package appelant sera nul.Renvoie
Le ComponentName de l'activité qui recevra votre réponse, ou null si aucun.