对于Activity的理解
今天電腦小白來談?wù)勛约簩τ赼ctivity的理解。
主要分為以下四點
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不會被重復(fù)實例化)
3 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)方法中恢復(fù)信息 值得一提的是,onSaveInstanceState()只有在該activity所在進程被系統(tǒng)殺死的時候才會調(diào)用,比如說突然來了電話,系統(tǒng)內(nèi)存不夠,因此殺掉了該進程,這時才會調(diào)用該方法。
b 通過activity的生命周期中的onpause()和onresume()方法,在pause時保存信息,在resume時恢復(fù)信息。
一起學(xué)習(xí),有錯誤請指出
轉(zhuǎn)載于:https://blog.51cto.com/8599981/1398839
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的对于Activity的理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LAMP环境安装1之php编译报错
- 下一篇: TCP的六个控制位