确定android活动是否已打开;“为结果”;

确定android活动是否已打开;“为结果”;,android,android-intent,android-activity,bundle,Android,Android Intent,Android Activity,Bundle,在某些情况下,我希望我的活动(活动A)设置为setResult,而在其他情况下,我希望我的活动设置为startActivity,并在调用finish自身时发送带有一些参数的意图 我可以通过使用一些bundle参数启动此活动A来解决此问题,如果该参数存在,则setResultelsestartActivity,但现在我想知道是否有任何方法来检查它最初是如何启动的 是否有方法确定是否为结果启动了我的活动a?调用getCallingActivity()将使用startActivityForResult

在某些情况下,我希望我的活动(活动A)设置为
setResult
,而在其他情况下,我希望我的活动设置为
startActivity
,并在调用finish自身时发送带有一些参数的意图

我可以通过使用一些bundle参数启动此活动A来解决此问题,如果该参数存在,则
setResult
else
startActivity
,但现在我想知道是否有任何方法来检查它最初是如何启动的


是否有方法确定是否为结果启动了我的活动a?

调用
getCallingActivity()
将使用
startActivityForResult(…)
返回调用您的活动的活动。如果
getCallingActivity()
为空,则可以假定您的活动已正常启动(预期没有结果)


调用
getCallingActivity()
将返回使用
startActivityForResult(…)
调用您的活动的活动。如果
getCallingActivity()
为空,则可以假定您的活动已正常启动(预期没有结果)

ComponentName callingComponent = getCallingActivity();

if (callingComponent == null) // result not expected
{
    Intent intent = new Intent(this, ActivityB.class);
    // set your intent extras here
    startActivity(intent);
} else { //result expected
    Intent intent = new Intent();
    // set your intent extras here
    setResult(RESULT_OK, intent);
    finish();
}