溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

對于Activity的理解

發(fā)布時間:2020-06-18 19:57:07 來源:網(wǎng)絡 閱讀:579 作者:華健123 欄目:移動開發(fā)

今天電腦小白來談談自己對于activity的理解。

主要分為以下四點

1 Activity是什么

Activity是最基本也是最常見的android基本組件之一,負責與用戶交互,一個Activity通常就是一個屏幕

2 Activity的四種啟動模式

先簡單說明:下面提到的棧,指的是task棧。

通過在Manifest文件中設(shè)置Activity的android:launchmode屬性有以下四種啟動模式

a standard

standard是默認設(shè)置,想要以此模式啟動無需設(shè)置launchmode屬性,standard模式啟動一個activity將會生成一個新的activuty對象

b singletop

如果即將要啟動的activity的launchmode屬性為singletop,而該activity已經(jīng)啟動過了且正好位于棧頂,那么android并不會為程序生成一個新的activity,而是直接使用位于棧頂?shù)哪莻€activity,只有滿足上述2個條件才會這樣,否則將會生成一個新的activity。

c singletask

singletask模式下,只會創(chuàng)建該activity的一個實例,在此模式下啟動activity,如果棧中已經(jīng)有了該activity實例,那么直接使用該activity實例。

d singleinstance

該模式下,將會新建一個task,且在該task下生成要啟動的activity實例(該task下只會生成這一個activity實例,且該activity不會被重復實例化)

3 Activity的生命周期

先上圖:

對于Activity的理解

簡單說明一下,當Activity正處于可見狀態(tài)時,這時它的狀態(tài)是onresume,當新的activity啟動,但之前的activity仍然處于可見狀態(tài)時,該activity處于onpause狀態(tài),不可見則處于onstop狀態(tài),當程序退出時,什么時候是處于ondestroy呢?當該activity實例出棧的時候就會調(diào)用ondestroy。


4 Activity的狀態(tài)保存(兩種)

a 通過onSaveInstanceState()方法對信息進行保存,之后在onCreate(Bundle)或者OnRestoreInstanceState(Bundle)方法中恢復信息 值得一提的是,onSaveInstanceState()只有在該activity所在進程被系統(tǒng)殺死的時候才會調(diào)用,比如說突然來了電話,系統(tǒng)內(nèi)存不夠,因此殺掉了該進程,這時才會調(diào)用該方法。


b 通過activity的生命周期中的onpause()和onresume()方法,在pause時保存信息,在resume時恢復信息。



一起學習,有錯誤請指出


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI