在某些情况下,我希望我的 Activity ( Activity A)setResult
,而其他时候我希望我的 Activity startActivity
并在调用完成时发送带有一些参数的 Intent 本身。
我可以通过使用一些 bundle 参数启动此 Activity A 来解决这个问题,如果该参数存在,则 setResult
else startActivity
但现在我很好奇是否有首先检查其启动方式的 Intent
有没有办法确定我的 Activity A 是否是为了结果而启动的?
最佳答案
调用 getCallingActivity()
将返回使用 startActivityForResult(...)
调用您的 Activity 的 Activity 。如果 getCallingActivity()
为空,您可以假设您的 Activity 正常启动(没有预期结果)
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();
}
关于android - 判断 android activity 是否被打开 "for result",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18320978/