activity面試題

什么是activity?

答:Activity是Android一個非常重要的用戶接口,是可見的,用戶和應用程序之間進行交互的接口。在每個Activity中都可以放很多控件,所以也可以把Activity看作控件的容器。

一.activity生命周期

? ?1.activity的4種狀態

? ? ? ? running放在棧頂

? ? ? ? paused失去焦點,成員變量都還在

? ? ? ? stopped當activity被覆蓋的時候

? ? ? ? killed 此時的activity已經被銷毀,所有變量都不存在
? ? 2.生命周期

activity啟動

? ? 1.oncreate()是在activity創建的時候調用,初始化的時候調用
? ? 2.onstart()表明activity正在啟動狀態,這時的activity可以看見但是不能觸摸

? ? 3.onresume()此時的activity可見,并且可以和用戶交互

點擊home鍵回到主見面

? ? 1.onpause()此時activity處于停滯狀態,可見但不可觸摸

? ? 2.onstop()當activity完全不可見,也是不可交互的

當我們再次回到原activity的時候

? ? 1.onrestart()表示activity正在重新啟用,

? ? 2.onstart()

? ? 3.onresume()

退出當前activity

? ? 1.onpause()

? ? 2.onstop()

? ? 3.ondestory()activity完全銷毀,此時可以做一些關閉的操作

二.android進程優先級

1.前臺:例如和用戶正在交互的activity或者在前臺activity綁定的service

2.可見 :activity處于可見但是不能點擊的時候就是可見進程

3.服務:在后臺開啟的服務進程就是服務進程

4.后臺:比如前臺activity按了home鍵,此時的activity看不見也不可交互,但是未被系統所回收,及為后臺進程

5.空:除上述四種進程外就是空進程,可以隨時被系統所回收

三.android啟動模式

1.standard:每次啟動都會重新創建activity實例,并放在棧中,并走相應的生命周期,消耗內存資源,

2.singletop:棧頂復用,當創建activity的時候會先查看當前棧頂是否已經存在當前activity實例,如果存在就復用,如果不存在即重新創建

3.singletask:棧內復用,相當于棧內的單例模式,當創建activity先檢查棧內是否存在此activity,如果存在,他會把當前activity上面的其他activity移除,銷毀,走onnewinstant方法

4.singleinstance:獨享任務棧模式

四.scheme跳轉協議

android中的scheme是一種頁面內跳轉協議,是一種非常好的實現機制,通過定義自己的scheme協議,可以非常方便跳轉app中的各個頁面,通過scheme協議,服務器可以定制化告訴app跳轉那個頁面,可以通過通知欄消息定制化跳轉頁面,可以通過H5頁面跳轉頁面等.

簡單來說,這個scheme協議其實就是給個uri地址,把參數以及要打開的activity的名字封裝在里面,在客戶端中解析這個uri地址,獲取到activity的名字及參數,通過這兩個順利打開指定的activity.

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容