1

在某些情况下,我希望我的活动(活动 A)setResult和其他时候我希望我的活动,startActivity并在调用自身完成时发送带有一些参数的意图。

我可以通过使用一些捆绑参数启动此活动 A 来解决此问题,如果该参数存在则setResult其他startActivity但现在我很好奇是否有任何方法来检查它最初是如何启动的

有没有办法确定我的活动 A 是否为结果而开始?

4

1 回答 1

5

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

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();
}
于 2013-08-19T18:53:31.617 回答