判断android活动是否已打开“for result”

时间:2013-08-19 18:51:27

标签: android android-intent android-activity bundle

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

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

有没有办法确定我的活动A是否已为结果启动?

1 个答案:

答案 0 :(得分:5)

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

getCallingActivity documentation

实施例

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();
}