安卓最新面試系列專題 一

自己最近也要找工作所以整理一些面試問(wèn)題,方便自己學(xué)習(xí)也提供給大家

1. Activity的啟動(dòng)過(guò)程

Activity的啟動(dòng)過(guò)程有兩種:
(1)桌面Luncher 點(diǎn)擊圖標(biāo)啟動(dòng)一個(gè)應(yīng)用,對(duì)應(yīng)會(huì)開(kāi)啟應(yīng)用的主Activity。
(2)在Activity中通過(guò)StartActivity來(lái)啟動(dòng)新的Activity。
點(diǎn)擊圖標(biāo)啟動(dòng),因?yàn)長(zhǎng)aunch本身也是一個(gè)應(yīng)用,會(huì)調(diào)用startActivitysately()把啟動(dòng)信息activity相關(guān)的一些信息包括action,category等等保存在intent中,會(huì)接著調(diào)用startActivity----->startActivityForResult()。在這個(gè)方法中通過(guò)監(jiān)聽(tīng)程序與系統(tǒng)交互的一個(gè)類Instrumentation類來(lái)實(shí)現(xiàn)Activity的啟動(dòng)的。在這個(gè)類中會(huì)調(diào)用execStartActivity()獲得ActivityManagerService代理對(duì)象。最后通過(guò)Application的scheduleLaunchActivity。到最終通過(guò)ActivityThread中的performLaunchActivity()來(lái)完成整個(gè)啟動(dòng)過(guò)程的,。

2.Activity中的Window創(chuàng)建過(guò)程

我們知道Activity的啟動(dòng)過(guò)程最終會(huì)調(diào)用ActivityThread中的performLaunchActivity(),這個(gè)方法中會(huì)調(diào)用Activity的attach方法,在這個(gè)方法中會(huì)創(chuàng)建一個(gè)Activity所屬的window對(duì)象,并且對(duì)他設(shè)置回調(diào)接口。其過(guò)程就是在這個(gè)方法中調(diào)用PolicyManager.makeNewWindow來(lái)創(chuàng)建一個(gè)類型為PhoneWindow的應(yīng)用窗口。并且為他設(shè)置Callback接口,只要有變化就會(huì)處理。其中這個(gè)PolicyManager.makeNewWindow會(huì)調(diào)用Policy這個(gè)類的makeNewWindow來(lái)創(chuàng)建一個(gè)PhoneWindow,此方法中會(huì)創(chuàng)建一個(gè)LayoutInflater來(lái)創(chuàng)建窗口視圖。

3.Activity的啟動(dòng)模式

standard、singleTop、singTask、singleInstance
standard:每次都創(chuàng)建新的Activity。
singleTop:如果棧頂有實(shí)例就復(fù)用,如果不在棧頂就創(chuàng)建。
singleTask:如果實(shí)例在棧頂就直接復(fù)用,如果棧內(nèi)有實(shí)例但不在棧頂,移除實(shí)例上面activity,并且使此activity位于棧頂。
singleInstance:每個(gè)實(shí)例都創(chuàng)建一個(gè)棧。并且確保整個(gè)應(yīng)用只有此activity的一個(gè)實(shí)例。

4.Activity的生命周期順序問(wèn)題
  • 一個(gè)Activity啟動(dòng)另一個(gè)Activity的時(shí)候

第一個(gè)Activity onPause()——>第二個(gè)Activity onCreate()——>onStart()——>onResume() ——>第一個(gè)Activity onStop()
當(dāng)前Activity只有執(zhí)行完onPause(),才會(huì)執(zhí)行新Activity的onResume()。

  • 當(dāng)返回到第一個(gè)Activity時(shí)

第二個(gè)Activity onPause() ——> 第一個(gè)Activity onRestart()——>onStart()——>onResume() ——>第二個(gè)Activity onStop()——>onDestroy()

5.IntentFilter的匹配原則(Activity的啟動(dòng)方式)

IntentFilter的過(guò)濾信息包含action 、category、data。只有同時(shí)匹配過(guò)濾列表中的action、category、data,才能成功,其中一個(gè)Activity可以有多個(gè)IntentFilter,一個(gè)Intent只要能匹配任何一組IntentFilter,就可以成功啟動(dòng)對(duì)應(yīng)的Activity

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文出自 Eddy Wiki ,轉(zhuǎn)載請(qǐng)注明出處:http://eddy.wiki/interview-androi...
    eddy_wiki閱讀 3,379評(píng)論 0 20
  • 【Android Activity】 什么是 Activity? 四大組件之一,通常一個(gè)用戶交互界面對(duì)應(yīng)一個(gè) ac...
    Rtia閱讀 3,931評(píng)論 3 18
  • Activity 一、四種形態(tài) 運(yùn)行狀態(tài): 當(dāng) Activity 處于棧的頂層,可見(jiàn),并可與用戶進(jìn)行交互 onRe...
    任教主來(lái)也閱讀 1,885評(píng)論 1 10
  • 第一章主要講了以下幾個(gè)知識(shí)點(diǎn): Activity生命周期 Activity的啟動(dòng)模式 IntentFilter匹配...
    Utte閱讀 1,287評(píng)論 0 3
  • 新手會(huì)計(jì)或者職場(chǎng)菜鳥(niǎo)一開(kāi)始都會(huì)被告知先好好看憑證,有不懂的就問(wèn),以為這樣就可以很快的學(xué)習(xí)到會(huì)計(jì)實(shí)操。事實(shí)真的如此嗎...
    勝進(jìn)道閱讀 4,142評(píng)論 1 3

友情鏈接更多精彩內(nèi)容