眾所周知Android是用Task來管理Activity的,一個Task就是一組存在返回棧裡的Activity集合,它是一種後進先出的數據結構。
首先運行Activity A(調用A: onCreate()—>onStart()—>onResume())點擊某個按鈕跳轉至Activity B(調用A:onPause()—> 調用B: onCreate()—>onStart()—>onResume()—>調用A:onStop()),此時應該是B在棧頂。最後在B中點擊返回鍵(調用B: onPause()—> 調用A:onRestart()—> onStart()—> onResume()—> 調用B: onStop()—> onDestroy())。順序是這樣的。
但我的問題是: 不是先銷毀B,A才能顯示啊,為什麼不是(調用B: onPause()—> 調用B: onStop()—> onDestroy() —>調用A:onRestart()—> onStart()—> onResume())這樣的順序?B還沒有被不可見A就出來了,這是為什麼?