我有一個活動,通過意圖調用第二個活動。第二個Activity被調用後,我想完成第一個活動。因此,我在onStop()
方法如下代碼:應該調用finish()嗎?
@Override
public void onStop() {
super.onStop();
if (shouldBeClosed) {
finish();
}
}
的問題是,我的第一個活動是沒有關閉。我不明白爲什麼?
也許我應該把這段代碼放入onPause()
?
但據我瞭解,在這種情況下,當活動鬆散焦點(就像在對話後),我的活動可以關閉。
那麼爲什麼會發生這種問題,我該如何糾正這種行爲?
P.S.變量shouldBeClosed
爲真。這不是重點。
編輯
這裏是次活動的號召:
Intent intent = new Intent(this, AcSpContextAssign.class);
Bundle extras = new Bundle();
extras.putInt(Constants.KEY_FROM_ACTIVITY, Constants.FROM_AcSpNameCreate);
extras.putLong(Constants.KEY_SPID, spId);
intent.putExtras(extras);
startActivity(intent);
我已經在得到完成活動的習慣我在創建下一個活動後不再需要。我會認爲使用onPause()或onStop()會做到這一點沒有問題。你怎麼知道它沒有關閉?它活多久? – Joel 2012-07-25 18:55:45
如果我按下後退按鈕或完成第二個活動,我會看到第一個活動。 – Yury 2012-07-25 18:57:05
表示同意,你怎麼知道它沒有完成?你可以通過在'onCreate()'中放置一個斷點來確定。在'onStop()'代碼運行後,你應該在下次調用activity時看到'onCreate()'。 – 2012-07-25 18:58:11