web-dev-qa-db-ja.com

アクティビティが結果のために呼び出されたかどうかを確認します

startActivityForResult()を使用して結果に対して何らかのアクティビティが呼び出されたかどうか、またはstartActivity()を使用してのみ開始されたかどうかを知ることは可能ですか?

これを制御する必要があります。結果が呼び出された場合、動作が異なります。

69
TiagoM

アクティビティがstartActivity()によって開始されたとき、ターゲットアクティビティのgetCallingActivity()メソッドはnullを返します。

startActivityForResult()によって呼び出されたとき、呼び出しアクティビティの名前を返します。

getCallingActivity() のドキュメントを参照してください:

このアクティビティを呼び出したアクティビティの名前を返します。これは、setResult()のデータの送信先です。この情報を使用して、受信者がデータを受信できることを検証できます。

注:呼び出しアクティビティが結果を予期していない場合(つまり、要求コードを含むstartActivityForResult(Intent, int)フォームを使用しなかった場合)、呼び出しパッケージはnullになります。

戻り値

返信を受け取るアクティビティのComponentName。ない場合はnull。

146
lopisan