您好,登錄后才能下訂單哦!
今天電腦小白來談談自己對于activity的理解。
主要分為以下四點
1 Activity是什么
Activity是最基本也是最常見的android基本組件之一,負責與用戶交互,一個Activity通常就是一個屏幕
2 Activity的四種啟動模式
先簡單說明:下面提到的棧,指的是task棧。
通過在Manifest文件中設置Activity的android:launchmode屬性有以下四種啟動模式
a standard
standard是默認設置,想要以此模式啟動無需設置launchmode屬性,standard模式啟動一個activity將會生成一個新的activuty對象
b singletop
如果即將要啟動的activity的launchmode屬性為singletop,而該activity已經啟動過了且正好位于棧頂,那么android并不會為程序生成一個新的activity,而是直接使用位于棧頂的那個activity,只有滿足上述2個條件才會這樣,否則將會生成一個新的activity。
c singletask
singletask模式下,只會創建該activity的一個實例,在此模式下啟動activity,如果棧中已經有了該activity實例,那么直接使用該activity實例。
d singleinstance
該模式下,將會新建一個task,且在該task下生成要啟動的activity實例(該task下只會生成這一個activity實例,且該activity不會被重復實例化)
3 Activity的生命周期
先上圖:
簡單說明一下,當Activity正處于可見狀態時,這時它的狀態是onresume,當新的activity啟動,但之前的activity仍然處于可見狀態時,該activity處于onpause狀態,不可見則處于onstop狀態,當程序退出時,什么時候是處于ondestroy呢?當該activity實例出棧的時候就會調用ondestroy。
4 Activity的狀態保存(兩種)
a 通過onSaveInstanceState()方法對信息進行保存,之后在onCreate(Bundle)或者OnRestoreInstanceState(Bundle)方法中恢復信息 值得一提的是,onSaveInstanceState()只有在該activity所在進程被系統殺死的時候才會調用,比如說突然來了電話,系統內存不夠,因此殺掉了該進程,這時才會調用該方法。
b 通過activity的生命周期中的onpause()和onresume()方法,在pause時保存信息,在resume時恢復信息。
一起學習,有錯誤請指出
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。