最近在準備面試,碰到這一題
Activity A跳轉Activity B,再按返回鍵,A、B的生命週期執行順序是什麼?
當聽到這個題目的時候,我得意地笑了笑,對於Activity的生命週期已經記熟的我,心想,爲什麼不直接問Activity的生命週期呢?於是想當然的說出瞭如下的答案:
在A跳轉B會執行:A onPause -> A onStop -> B onCreate -> B onStart -> B onResume
在B按下返回鍵會執行:B onPause -> B onStop -> B onDestroy -> A onRestart -> A onStart -> A onResume
正當我以爲他會問點別的的時候,他吸了一口氣說到,你下去多看看生命週期吧...
什麼?我回答錯了?回到家中我趕忙打開AS驗證了一下,我是萬萬沒有想到...結果如下:
首先打開A
在A跳轉到B
然後在B按下返回鍵
什麼????從log日誌可以看出
當A跳轉到B的時候,A先執行onPause,然後居然是B再執行onCreate -> onStart -> onResume,最後才執行A的onStop!!!
當B按下返回鍵,B先執行onPause,然後居然是A再執行onRestart -> onStart -> onResume,最後纔是B執行onStop -> onDestroy
我也有很多問號,待我先仔細查閱查閱再來補充...