Android面試資料庫

1. 安卓面試之Service

重點:
(1) startServicebindService各自的生命周期
(2) 項目中的每一個Service都必須在AndroidManifest.xml中注冊才行
(3) Service的onCreate是在主線程(ActivityThread)中調(diào)用的,耗時操作會阻塞UI
(4) 用遠程Service和IntentService執(zhí)行耗時操作
(5) IntentService中的onHandleIntent能接收Activity啟動服務(wù)時傳遞的參數(shù)并執(zhí)行相應(yīng)動作

2. 安卓面試之BroadcastReceiver

重點:
(1) 靜態(tài)注冊與動態(tài)注冊的區(qū)別
(2) 有序廣播與無序廣播的區(qū)別
(3) 當它的onReceive方法執(zhí)行完成后,它的生命周期就結(jié)束了。如果在onReceive去開線程進行異步操作或者打開Dialog都有可能在沒達到你要的結(jié)果時進程就被系統(tǒng)殺掉。替代的方案是用Notificaiton或者Service(startService)
(4) sendStickyBroadcast發(fā)出的最后一個Intent會被保留,下次當Recevier處于活躍的 時候,又會接收到它

3. 安卓面試之Activity

重點:
onPause較容易被觸發(fā),所以我們在做BroadcastReceiver注銷時放在onStop要好些;但在保存數(shù)據(jù)時,放在onPause去做可以保證數(shù)據(jù)存儲的有效性,如果放在onStop去做,在某些情況下Activity走完onPause后有可能還沒順利走到onStop就被系統(tǒng)回收了

4. 安卓面試之ContentProvider

重點:
ContentProvider向我們提供了我們在應(yīng)用程序之前共享數(shù)據(jù)的一種機制

5. 安卓面試之開發(fā)模式

重點:
作為一種新的模式,MVP與MVC有著一個重大的區(qū)別:在MVP中View并不直接使用Model,它們之間的通信是通過Presenter (MVC中的Controller)來進行的,所有的交互都發(fā)生在Presenter內(nèi)部,而在MVC中View會從直接Model中讀取數(shù)據(jù)而不是通過 Controller。

6. 安卓面試之對象序列化

重點:
兩種都是用于支持序列化、反序列化話操作,兩者最大的區(qū)別在于存儲媒介的不同,Serializable使用IO讀寫存儲在硬盤上,而Parcelable是直接在內(nèi)存中讀寫,很明顯內(nèi)存的讀寫速度通常大于IO讀寫,所以在Android中通常優(yōu)先選擇Parcelable。
在內(nèi)存間數(shù)據(jù)傳輸時推薦使用Parcelable,而Serializable可將數(shù)據(jù)持久化方便保存,所以在需要保存或網(wǎng)絡(luò)傳輸數(shù)據(jù)時選擇Serializable,因為android不同版本Parcelable可能不同,所以不推薦使用Parcelable進行數(shù)據(jù)持久化

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容