执行我有两个活动,我们姑且称之为A和B.呼叫完成()不停止的代码
A是可以从应用程序两个地启动一项活动。我希望能够知道是否是从地方1或2开始,所以在BI所说的这样的:
Intent i = new Intent(B.this, A.class);
i.putExtra("code", code);
startActivityForResult(i, code);
(code
是一个值为1的int)
在OnCreate AI的方法做到这一点:
@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,我想给完成,如代码所示。当我从另一个不是B的活动启动A时,我希望它像往常一样运行(并且它)。但是finish()
和return
在这里什么都不做 - 我可以看到在调用返回调用之后,它跳回到onCreate,它不关闭活动。
也就是说,B中的onActivityResult()
永远不会被调用。
这里有什么问题?
@sandy在他的回答中的说法很有道理。也许你应该将检查移动到onStart()方法? – 2012-04-19 13:27:18
“return”不可能“在这里什么也不做”。 – CommonsWare 2012-04-19 13:39:43