什么是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.