執行我有兩個活動,我們姑且稱之爲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