(一)Activity面試問題

一、Activity生命周期

什么是Activity?Activity是Android與用戶進行交互的接口,它提供了一個界面,讓用戶進行點擊、滑動等操作。

1.Activity的四種狀態(tài)

  1. running狀態(tài):處于活動狀態(tài),此時用戶可以點擊屏幕,屏幕會做出響應(yīng);處于Activity棧頂?shù)臓顟B(tài)。

  2. paused狀態(tài):處于Activity失去焦點的狀態(tài),或者被非全屏的Activity占據(jù),或者被非透明狀態(tài)處于棧頂。失去焦點的Activity所有的成員變量都還在,沒有被銷毀,只是暫時不能與用戶進行交互。內(nèi)存緊張時,該Activity會被銷毀。

  3. stopped狀態(tài):當(dāng)一個Activity被另一個Activity完全覆蓋時,被覆蓋那個Activity就處于stopped狀態(tài),它將不再是可見的,內(nèi)存不緊張時,其成員變量就還在。

  4. killed狀態(tài):Activity被系統(tǒng)回收,所保存的信息和成員變量全都被銷毀。

2.Activity生命周期

1.Activity啟動:onCreate()——>onStart()——>onResume()
onCreate():完成界面的初始化,數(shù)據(jù)加載等。
onStart():處于用戶可見的狀態(tài),但不能進行交互。
onResume():用戶可見,并能進行交互,可進行點擊滑動等操作。

2.點擊Home鍵回到主界面(Activity不可見) :onPause()——>onStop()
onPause():Activity處于可見的,但是不能被觸摸的狀態(tài),對應(yīng)的是onResume()方法。
onStop():表明Activity處于完全不可見的狀態(tài),當(dāng)內(nèi)存緊張時,該Activity可能被回收。

3.當(dāng)再次回到原Activity時 :onRestart()——>onStart()——>onResume()
onRestart():由不可見狀態(tài)變到可見狀態(tài)的時候,會調(diào)用該方法。
onStart():處于用戶可見的狀態(tài),但不能進行交互。
onResume():用戶可見,并能進行交互,可進行點擊滑動等操作。

4.退出當(dāng)前Activity時 :onPause()——>onStop()——>onDestroy()
onPause():Activity處于可見的,但是不能被觸摸的狀態(tài),對應(yīng)的是onResume()方法。
onStop():表明Activity處于完全不可見的狀態(tài),當(dāng)內(nèi)存緊張時,該Activity可能被回收。
onDestroy():表明Activity正在被銷毀,由于回收和釋放資源。

3.Android進程優(yōu)先級

1.前臺進程 :處于前臺正在與用戶進行交互的Activity,或者在前臺綁定的Service。

2.可見進程 :可見但不可交互的Activity。

3.服務(wù)進程 :在后臺開啟的Service就是服務(wù)進程。

4.后臺進程 :當(dāng)處于前臺的Activity,被按下Home鍵之后,該Activity會變成后臺進程,但后臺進程不會被立馬銷毀,系統(tǒng)會根據(jù)內(nèi)存情況進行相應(yīng)的回收。

5.空進程 :表示沒有活躍的組件,只是出于緩存的目的而保留,可被隨時收回。

二、Android任務(wù)棧

任務(wù)棧是后進先出的棧結(jié)構(gòu),Android通過任務(wù)??梢杂行蚬芾砻恳粋€Activity。任務(wù)棧并不是唯一的,一個App中可以有多個任務(wù)棧,但是,在某些情況下,一個Activity也可以獨享一個任務(wù)棧。

三、Activity啟動模式

1.Standard模式 :每次啟動Activity都會創(chuàng)建一個Activity實例,加入任務(wù)棧中,不會考慮任務(wù)棧中是否有相同的Activity。較為消耗資源。

2.SingleTop模式 :棧頂復(fù)用模式,如果新創(chuàng)建的Activity與當(dāng)前的Activity一致,處于棧頂?shù)脑?,就不會?chuàng)建新的Activity,而是復(fù)用棧頂?shù)腁ctivity。

3.SingleTask模式 :任務(wù)棧復(fù)用模式,在新建Activity之前會檢測任務(wù)棧中是否有相同的Activity,有的話直接把Activity移到棧頂,這個Activity以上的Activity都會被移除和銷毀;沒有就新建一個。

4.SingleInstance模式 :在整個系統(tǒng)中,有且只有一個實例,而且這個Activity獨享任務(wù)棧。

四、Scheme跳轉(zhuǎn)模式

android中的scheme是一種頁面內(nèi)跳轉(zhuǎn)協(xié)議,是一種非常好的實現(xiàn)機制,通過定義自己的scheme協(xié)議,可以非常方便跳轉(zhuǎn)app中的各個頁面;通過scheme協(xié)議,服務(wù)器可以定制化告訴app跳轉(zhuǎn)哪個頁面,可以通過通知欄消息定制化跳轉(zhuǎn)頁面,可以通過H5頁面跳轉(zhuǎn)頁面等。

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

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,942評論 25 709
  • 學(xué)習(xí)資料: Android群英傳 Android開發(fā)藝術(shù)探索 Activity是與用戶交互的第一接口,感覺說是四大...
    英勇青銅5閱讀 2,848評論 15 41
  • 1 我要去北京當(dāng)沙發(fā)客。 在豆瓣上找到一個名叫IT的沙發(fā)主。 他家的一張照片讓人動心,玻璃茶幾上有個細(xì)頸素白花瓶,...
    book君閱讀 520評論 7 4
  • Node中存在一個module對象代表模塊自身,擁有一個exports屬性,一個文件就是一個模塊。 每個js文件可...
    我就是L閱讀 759評論 0 0
  • 1 工作第一個月,工資525,扣半個月工資,數(shù)字到還挺喜歡的——“我愛我”。我...
    正常不過三秒閱讀 215評論 0 0

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