を使用して、結果を求めて何らかのアクティビティが呼び出されたstartActivityForResult()
かどうか、または使用を開始しただけかどうかを知ることはできstartActivity()
ますか?
結果が必要な場合は動作が異なるため、これを制御する必要があります。
回答:
ターゲットアクティビティのメソッドだけでアクティビティを開始するとstartActivity()
、getCallingActivity()
が返されnull
ます。
によって呼び出されたときにstartActivityForResult()
、呼び出しアクティビティの名前が返されます。
ドキュメントを参照してくださいgetCallingActivity()
:
このアクティビティを呼び出したアクティビティの名前を返します。これは、データの
setResult()
送信先です。この情報を使用して、受信者がデータの受信を許可されていることを検証できます。注:呼び出しアクティビティが結果を期待していない場合(つまり
startActivityForResult(Intent, int)
、要求コードを含むフォームを使用していなかった場合)、呼び出しパッケージはnullになります。戻り値
返信を受け取るアクティビティのComponentName。ない場合はnull。
getActivity().startActivityFor…
実行startActivityForResult
する必要があるフラグメントから呼び出す必要がないためです。