1. 程式人生 > >Android中進入下一個Activity時在上一個Activity主動呼叫onDestroy()方法不會真正將上一個Activity從棧中刪除

Android中進入下一個Activity時在上一個Activity主動呼叫onDestroy()方法不會真正將上一個Activity從棧中刪除

因為要完成任務,就除錯了一個最基礎的程式,就當再瞭解一下Activity的生命週期了~

先描述一下大概的情況哈:現在就只有兩個Activity,分別是FirstActivity和SecActivity,在FirstActivity中有一個Button控制元件,功能是按下這個Button就轉向SecActivity,同時,在FirstActivity的onPause()方法中自己主動呼叫onDestroy()方法去銷燬FirstActivity,主要是想在SecActivity中按Back返回鍵的時候不會再回到剛剛的FirstActivity,而直接回到程式執行前的介面。

除錯發現自己在onPause()方法中主動呼叫onDestroy()方法並不能將FirstActivity從棧中刪除,因此在SecActivity中按Back返回鍵的時候依舊還是回到剛剛的FirstActivity。

這裡,要解決這一問題,達到自己想要的效果,只要在onPause(0方法中使用this.finish();方法就OK了,這樣可以將第一個Activity從棧中刪除,從而在第二個Activity中點選返回鍵時就不會再回到剛剛的第一個Activity了~~~

說明:Android在執行時,正常情況下,Activity的切換其實是將執行過的Activity壓入棧中,每建立一個Activity就向棧中壓入改Activity;當點選返回鍵的時候會銷燬當前Activity,即將當前Activity從棧頂刪除,接著顯式棧中的第二個Activity(也即現在的棧頂Activity)。【注意:點選返回鍵是會destroy掉當前Activity的,而不是再將該Activity壓入棧裡】