在某些情况下,我希望我的活动(活动 A)setResult
和其他时候我希望我的活动,startActivity
并在调用自身完成时发送带有一些参数的意图。
我可以通过使用一些捆绑参数启动此活动 A 来解决此问题,如果该参数存在则setResult
其他startActivity
但现在我很好奇是否有任何方法来检查它最初是如何启动的
有没有办法确定我的活动 A 是否为结果而开始?
在某些情况下,我希望我的活动(活动 A)setResult
和其他时候我希望我的活动,startActivity
并在调用自身完成时发送带有一些参数的意图。
我可以通过使用一些捆绑参数启动此活动 A 来解决此问题,如果该参数存在则setResult
其他startActivity
但现在我很好奇是否有任何方法来检查它最初是如何启动的
有没有办法确定我的活动 A 是否为结果而开始?
调用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();
}