面試時,這個知識點,80%求職者很容易陷入面試官精心設計的陷阱

每天分享職場生活、職場攻略、領導同事相處技巧和創業資源

作為一名Android開發程序員,面試時,關於Activity的生命週期幾乎是面試官必問的知識點,以此來考察應聘者的基礎紮實程度。

譬如有這樣的一個面試題,稍微不小心就很容易陷入面試官精心設計的陷阱。

Activity中調用finish方法後,是不是就生命週期就結束了?

要是不加以注意,顧名思義,有的求職者回答Activity的生命週期就這樣結束了,估計這場面試很難拿到offer了。

那麼Activity中調用finish方法後,Activity的生命週期發生什麼樣的變化呢?我們不妨一起來看看。在不同時期調用finish方法,Activity生命週期是怎樣的。

面試時,這個知識點,80%求職者很容易陷入面試官精心設計的陷阱

面試那點事

1、如果我們在Activity的onCreate()中調用finish()方法,會發現,不會顯示出此Activity的界面,但從我們打印的日誌看,執行的生命週期方法順序為:

onCreate() -> onDestroy()

在Activity的onCreate()中調用finish()方法,生命週期直接跑到了onDestroy了。

2、在Activity的onStart()中調用finish()方法,頁面會直接退出,執行的生命週期方法順序為:

onCreate() -> onStart() -> onStop() -> onDestroy()

3、在Activity的onResume()或onPostResume()中調用finish()方法,頁面直接退出,則執行的生命週期方法順序為:

onCreate() -> onStart() -> onResume() -> onPostResume() ->onPause() -> onStop() -> onDestroy()

4、在onPause、onStop、onDestroy中調用finish方法

在onPause、onStop、onDestroy中,調用finish,頁面顯示正常。退出時,正常退出。執行的生命週期為:

onCreate()-> onStart()-> onResume()-> onPause()-> onStop()-> onDestroy()

由此可見,Activity在不同地方調用finish()方法,生命週期是不一樣的。這只是面試中一道比較基礎的面試題,要是基礎知識沒有掌握好,被面試官問懵了因此錯過了offer,那是多麼一件很遺憾的事情,可以平時多花點時間,把基礎知識牢固掌握好是多麼重要的一件事情。

[END]

希望今天的文章對你有幫助,感謝閱讀,感謝有你,晚安!


分享到:


相關文章: