我有两个活动,我们称它们为 A 和 B。
A 是可以从应用程序中的两个位置启动的活动。我希望能够知道 A 是从位置 1 还是位置 2 开始的,所以在 BI 调用 A 中是这样的:
Intent i = new Intent(B.this, A.class);
i.putExtra("code", code);
startActivityForResult(i, code);
(code
是一个值为 1 的 int。)
在 AI 的 onCreate 方法中这样做:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Intent i = getIntent();
Bundle extras = i.getExtras();
if(extras != null)
{
int code = extras.getInt("code");
if(code == 1)
{
ClearReleasesCache(); // just a private method of A
setResult(1, i);
finish();
return;
}
}
// do everything else as usual
setContentView...
}
现在,问题是这样的(我在调试时注意到了):
当我从 B 启动 A 时,我希望 A完成,如代码所示。当我从另一个不是 B 的活动中启动 A 时,我希望它像往常一样运行(确实如此)。但是在这里什么finish()
也不return
做 - 我可以看到在调试返回调用后,它会跳回到 onCreate,它不会关闭活动。
也就是说,onActivityResult()
在 B 中永远不会被调用。
这里有什么问题?