漫畫:越挫越勇
本系列漫畫故事,純屬虛構,若有雷同,請對號入座。
左小白 Java 基礎薄弱,上次面試被暴露無遺,雖然學校里學過,但是工作來就一直做 Android,那些 Java 基礎都還給老師來,但為了不要再栽在 Java 上,左小白惡補了 Java 面試題,不久,又有面試電話來了。
左小白把事前準備好的 APP 打開了,遞給了面試官。
咦,這個面試官,挺好的,小白心裡暗喜。
擦,好像答錯了,應該先 onPause,再 onStop。
這麼快結束了啊,看樣子這次面試又掛了!
又是等通知,等了幾天,依舊沒結果,左小白傷心了,面試官挺好的,面試的也較基礎,只能怪自己學藝不精,能力不夠。他總結要回顧了下自己在項目遇到了什麼問題,面試官可能會從中考察,必須要搞明白,不然自己做的項目,卻不知道,那豈不是很尷尬;雖然這次沒怎麼考察 Java,但也得要看看,還得刷題。
附面試題答案
1、Activity 啟動模式
standard
默認啟動模式,在這種模式下啟動的 Activity 可以被多次實例化,即在同一個任務中可以存在多個 Activity 的實例。
singleTop
如果一個以 singleTop 模式啟動的 Activity 的實例已經存在於任務桟的桟頂,那麼再啟動這個 Activity 時,不會創建新的實例,而是重用位於棧頂的那個實例,並且會調用該實例的 onNewIntent() 方法將 Intent 對象傳遞到這個實例中。
singleTask
singleTask 模式的 Activity 只允許在系統中有一個實例。如果系統中已經有了一個實例,持有這個實例的任務將移動到頂部,同時 intent 將被通過 onNewIntent() 發送。如果沒有,則會創建一個新的 Activity 並置放在合適的任務中。
singleInstance
總是在新的任務中開啟,並且這個新的任務中有且只有這一個實例,也就是說被該實例啟動的其他 Activity 會自動運行於另一個任務中。
2、Activity 生命周期
正常啟動
onCreate –> onStart –> –> onResume –> onPause –> onStop –> onDestroy
防止變相考察:
轉向下一個 Activity:
onPause –> onStop從下一個 Activity 返回當前(按機器返回鍵):
onRestart –> onStart –> onResume轉向上一個 Activity(按機器返回鍵):
onPause –> onStop –> onDestory屏幕待機(黑掉):
onPause屏幕變亮:
onResumeHome 鍵退出:
onPause –> onStopHome 鍵導航返回:
onRestart –> onStart –> onResume3、圖片框架
Android-Universal-Image-Loader 是比較早也是比較有名的的圖片載入框架,現在作者已經不維護了,當下推薦 Glide,另外也要對圖片載入原理適當了解。
4、自定義 View
主要有三個流程,onMeasure 測量,onLayout 布局, onDraw 繪製,當然想更好自定義 View,還得深入 Canvas 畫布,Paint 畫筆。
還有 1 分鐘就下班了,這個時候看到領導的頭像在閃:
又在下班搞事情,這不逼著左小白加班嘛!哎,誰讓自己是底層碼農,勞動廉價,乖乖加班吧。
推薦閱讀: