日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android中四种启动模式,最容易理解的小白教程

發(fā)布時(shí)間:2025/3/21 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android中四种启动模式,最容易理解的小白教程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

說起Android中的啟動(dòng)模式,其實(shí)是個(gè)很基礎(chǔ)的內(nèi)容,誰都知道是4中啟動(dòng)模式,沒錯(cuò)分別是以下四種:

1,standard

2,singleTop

3,singleTask

4,singleInstance

關(guān)于高深的純理論說明這里就不多做贅述,畢竟文字說明太饒人,這里就準(zhǔn)備說點(diǎn)簡單的,能看得見的,現(xiàn)在開始吧。

第一種:standard(默認(rèn))

關(guān)于這種模式,大家都知道,就是Android默認(rèn)的啟動(dòng)模式,就是不顯示指定,就是這種模式。現(xiàn)在有FirstActivity和SecondActivity兩個(gè)界面,代碼里都打印了當(dāng)前實(shí)例和taskId,格式為xx/xx

測試情景:重復(fù)跳轉(zhuǎn)自己(自己設(shè)置standard)

794為task的Id,前面的為當(dāng)前實(shí)例對象,可見每次都是新建的,并不是復(fù)用的。@f37d177是第一個(gè)頁面,一共跳轉(zhuǎn)了三次。同樣退出應(yīng)用也用了三次。

結(jié)論:standard模式下,會不斷地新建activity實(shí)例,都放入同一個(gè)task中

第二種:singleTop

測試情景一:重復(fù)跳轉(zhuǎn)自己(自己設(shè)置singleTop)

看起來好像沒有點(diǎn)擊一樣,其實(shí)是點(diǎn)擊了的,注意看Actionbar上的點(diǎn)擊計(jì)數(shù),點(diǎn)擊了3次,三次的實(shí)例和taskId都是沒有變化的,且最后退出應(yīng)用就用了一次點(diǎn)擊,如下圖:

測試情景二:循環(huán)跳轉(zhuǎn)到目標(biāo)頁面(SecondActivity設(shè)置singleTop)

可以看到兩次跳轉(zhuǎn)到SecondActivity時(shí),實(shí)例都不一樣,且最后返回到桌面也是和進(jìn)入的次數(shù)一樣多。這里進(jìn)入了兩次SecondActivity,且最終從SecondActivity退出應(yīng)用,一共用了4次,如下圖

結(jié)論:顧名思義,singleTop,如果當(dāng)前實(shí)例在當(dāng)前的task的棧頂,則直接復(fù)用,測試情景一;如果當(dāng)前實(shí)例不再棧頂,則新建實(shí)例,如測試情景二,因?yàn)槊看味际菑腇irstActivity跳轉(zhuǎn)到SecondActivity的,雖然第二次跳轉(zhuǎn)到SecondActivity的時(shí)候已經(jīng)存在了SecondActivity實(shí)例,可是因?yàn)椴辉跅m?#xff0c;所以又新建了一個(gè)SecondActivity實(shí)例。

第三種:singleTask

測試情景一:重復(fù)跳轉(zhuǎn)自己(自己設(shè)置singleTask)

跳轉(zhuǎn)了自己4次,可以看到實(shí)例和taskId都是沒有變化,且最后一次就能退出應(yīng)用,如下圖:

測試情景二:循環(huán)跳轉(zhuǎn)到目標(biāo)頁面(SecondActivity設(shè)置singleTask)

這里我們注意到一開始FirstActivity的實(shí)例為a2c5349,然后跳轉(zhuǎn)到SecondActivity一直都是5d5dd2a,而且taskId兩個(gè)界面也是一致的,最后在SecondActivity按了一次返回鍵,這里直接返回到了最初的5349實(shí)例界面,也就是第一個(gè)界面,如下圖:

結(jié)論:設(shè)置了singleTask的頁面,只要是task中有這個(gè)實(shí)例,就會一直復(fù)用,而且每次復(fù)用這個(gè)已存在的實(shí)例,都會清空上面的其他實(shí)例(這里的FirstActivity),將自己直接提升到棧頂位置,也就是顯示自己

第四種:singleInstance

測試情景一:重復(fù)跳轉(zhuǎn)自己(自己設(shè)置singleInstance)

跳轉(zhuǎn)了5次,但是可以發(fā)現(xiàn)實(shí)例和task的值都沒有變化,退出應(yīng)用也只是一次退出,如下圖:

測試情景二:循環(huán)跳轉(zhuǎn)到目標(biāo)頁面(SecondActivity設(shè)置singleInstance)

可以看到一開始從FirstActivity跳轉(zhuǎn)跳轉(zhuǎn)到SecondActivity的時(shí)候,taskId發(fā)生了變化,FirstActivity的id是863,但是跳轉(zhuǎn)到SecondActivity的時(shí)候變成了864,然后后面每次跳轉(zhuǎn)到SecondActivity的時(shí)候?qū)嵗蛅ask的id都是沒有變化;說說返回的場景

如果最后從FirstActivity返回,那么會把之前壓入棧的FirstActivity全部返回完之后才是SecondActivity頁面,然后一次就能退出應(yīng)用;

如果最后從SecondActivity頁面返回,那么一次就回到FirstActivity,然后把之前壓入棧的FirstActivity全部返回完就退出了應(yīng)用;

壓入棧的如下圖所示:

結(jié)論:設(shè)置了singleInstance的頁面,初始時(shí)都是新建一個(gè)task棧給這個(gè)頁面,然后后面一直復(fù)用這個(gè)棧內(nèi)的頁面。注意,只有這種模式會新建一個(gè)棧給初始化的頁面。最后返回的規(guī)律是,先把本頁面所在的棧頭出完,然后再出下一個(gè)棧的每個(gè)頁面。

至此,四種模式簡單分析完畢,希望能給大家一個(gè)直觀的理解

上一篇:IDEA或者AS 中關(guān)于Git的常用操作

轉(zhuǎn)載于:https://juejin.im/post/5b9a2c8fe51d450e5766da88

總結(jié)

以上是生活随笔為你收集整理的Android中四种启动模式,最容易理解的小白教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。