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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android activity启动模式

發(fā)布時間:2023/12/10 Android 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android activity启动模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

如何正確理解和使用 Activity的4種啟動模式

關(guān)于Activity啟動模式的文章已經(jīng)很多,但有的文章寫得過于簡單,有的則過于注重細節(jié),本文想取一個折中,只關(guān)注最重要和最常用的概念,原理和使用方法,便于讀者正確應用。

???????? Activity的啟動模式有4種,分別是standard.singleTop. SingleTask. singleInstance,可以在AndroidMainifest.xml文件中指定每一個Activity的啟動模式。一個Android應用一般都會有多個Activity,系統(tǒng)會通過任務棧來管理這些Activity,棧是一種后進先出的集合,當前的Activity就在棧頂,按返回鍵,棧頂Activity就會退出。Activity啟動模式不同,系統(tǒng)通過任務棧管理Activity的方式也會不同,以下將分別介紹。

1 Standard模式

Standard模式是Android的默認啟動模式,你不在配置文件中做任何設(shè)置,那么這個Activity就是standard模式,這種模式下,Activity可以有多個實例,每次啟動Activity,無論任務棧中是否已經(jīng)有這個Activity的實例,系統(tǒng)都會創(chuàng)建一個新的Activity實例,以下是實驗驗證。

新建一個FirstActivity,用一個Button去啟動它本身:

?

發(fā)現(xiàn)每次都會啟動一個新的FristActivity, Log信息如下

?

什么時候用standard模式呢?standartd模式是activity的默認模式,大部分情況下,都應該使用這種模式,也就是在配置文件中什么都不用做,當確實有特殊需求時,再考慮其他模式。

2?SingleTop模式

SingleTop模式和standard模式非常相似,主要區(qū)別就是當一個singleTop模式的Activity已經(jīng)位于任務棧的棧頂,再去啟動它時,不會再創(chuàng)建新的實例,如果不位于棧頂,就會創(chuàng)建新的實例,現(xiàn)在把配置文件中FirstActivity的啟動模式改為SingleTop,我們的應用只有一個Activity,FirstActivity自然處于任務棧的棧頂。

???????? 當應用第一次啟動后,我們再按Button去啟動新的FirstActivity,發(fā)現(xiàn)Log信息中不再打印onCreate函數(shù),說明不再創(chuàng)建新的FirstActivity實例。

???????? 這里有一個新的問題,對于每次啟動Activity,我們該如何分別處理。答案就是onNewIntent()函數(shù),雖然系統(tǒng)不會調(diào)用onCreat(),但會調(diào)用onNewIntent,我們可以在這個函數(shù)做相應的處理。

?

???????? 當一個Activity已經(jīng)在棧頂,但依然有可能啟動它,而你又不想產(chǎn)生新的Activity實例,此時就可以用singleTop模式。例如,一個搜索Activity,可以輸入搜索內(nèi)容,也可以產(chǎn)生搜索結(jié)果,此時就可以用singleTop模式,不會用戶每次搜索都會產(chǎn)生一個實例。

?????????3 SingleTask模式

???????? SingleTask模式的Activity在同一個Task內(nèi)只有一個實例,如果Activity已經(jīng)位于棧頂,系統(tǒng)不會創(chuàng)建新的Activity實例,和singleTop模式一樣。但Activity已經(jīng)存在但不位于棧頂時,系統(tǒng)就會把該Activity移到棧頂,并把它上面的activity出棧。修改上面的程序,新建一個SecondActivity,將FirstActivity設(shè)置為singleTask啟動模式,并讓它啟動SecondActivity,再讓SecondActivity來啟動FirstActivity。

? ? ? ? ? ??

???????? Log信息如下

?

當SecondActivity啟動FirstActivity時,并不會調(diào)用FirstActivity的onCreate函數(shù),但會調(diào)用onNewIntent函數(shù),同時會調(diào)用SecondActivity的onDestroy函數(shù),SecondActivity實例被銷毀。

singleTask模式和前面兩種模式的最大區(qū)別就是singleTask模式是任務內(nèi)單例的,所以我們是否設(shè)定Activity為singleTask模式,就是看我們activity是否需要單例,例如你的某個Activity

里面有一個列表,如果有多個實例,有可能導致用戶看到的列表不一致,有的Activity需要經(jīng)常啟動,如果每次都創(chuàng)建實例,會導致占用資源過多,這些情況都可以使用singleTask模式,但啟動singleTask模式的Activity會導致任務棧內(nèi)它上面的Activity被銷毀,有可能會影響用戶體驗,使用時要注意。

4 SingleInstance模式

singleInstance模式也是單例的,但和singleTask不同,singleTask只是任務棧內(nèi)單例,系統(tǒng)里是可以有多個singleTask Activity實例的,而singleInstance Activity在整個系統(tǒng)里只有一個實例,啟動一singleInstanceActivity時,系統(tǒng)會創(chuàng)建一個新的任務棧,并且這個任務棧只有他一個Activity。

SingleInstance模式并不常用,如果我們把一個Activity設(shè)置為singleInstance模式,你會發(fā)現(xiàn)它啟動時會慢一些,切換效果不好,影響用戶體驗。它往往用于多個應用之間,例如一個電視launcher里的Activity,通過遙控器某個鍵在任何情況可以啟動,這個Activity就可以設(shè)置為singleInstance模式,當在某應用中按鍵啟動這個Activity,處理完后按返回鍵,就會回到之前啟動它的應用,不影響用戶體驗。

以上分析了Activity的4種啟動模式,將Activity設(shè)置為哪種啟動模式并沒有標準答案,有時候,你可能發(fā)現(xiàn)將某個Activity設(shè)置為一種啟動模式或者另一種啟動模式,并沒有明顯區(qū)別,而具體的評判標準就是看哪種模式更滿足應用功能,更有利于用戶體驗。

總結(jié)

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

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

主站蜘蛛池模板: 精品日韩欧美 | 黄页网站在线播放 | 亚洲一卡二卡在线观看 | 涩涩国产 | 国产视频一区二区三区四区 | 致命弯道8在线观看免费高清完整 | 欧美a v在线播放 | 成年人免费网站 | 中文字幕 国产 | 国产精品99久久久久久久 | 美女黄色免费网站 | 无码精品人妻一二三区红粉影视 | 深夜啪啪| 欧美一级黄色网 | ass精品国模裸体pics | 九一在线观看免费高清视频 | 日韩精品成人av | 日韩在线观看视频免费 | 视频一区日韩 | 国产精品久久9 | 少妇一级淫片免费观看 | 一区二区中文字幕在线观看 | 神马伦理视频 | 欧美有码视频 | 久久久久97国产 | 蜜臀在线观看 | 国产熟女高潮视频 | 欧美无吗| 亚洲国产精 | 成人试看120秒体验区 | 日韩午夜激情视频 | 成人在线观看亚洲 | 国产福利精品在线观看 | japan高清日本乱xxxxx | 亚洲啪av永久无码精品放毛片 | 国产精品视频久久久久久 | 免费色网| 久久久久久人妻一区二区三区 | 亚洲国产aⅴ精品一区二区 日韩黄色在线视频 | 高潮毛片又色又爽免费 | 欧美日韩中文国产 | 激情网综合| 高清久久 | 成人在线观看网站 | 污站在线观看 | 欧美日日操 | 五月激情五月婷婷 | 日韩精品短片 | 一区二区日本 | 欧美 亚洲 另类 偷偷 自拍 | 国产欧美123 | 亚洲www | 欧美精品极品 | 黄色三级在线观看 | 黄色性大片 | 国产精品专区在线观看 | 伊人天堂在线 | 人人揉人人| 超碰97观看 | 午夜伦理视频 | 青草青草视频 | 日韩第四页 | 超碰公开在线观看 | beeg日本高清xxxx18| 久草一本 | 欧美日韩女优 | 孕期1ⅴ1高h| 2019日韩中文字幕mv | 天堂а在线中文在线新版 | 久久久免费观看 | 97超碰人人澡人人爱学生 | 亚洲永久精品在线观看 | 亚洲人毛茸茸 | 久久免费的精品国产v∧ | 国产小视频在线 | 91丝袜呻吟高潮美腿白嫩在线观看 | 亚洲图片欧美激情 | 日韩久久精品视频 | www.久久av| 3o一40一50一6o女人毛片 | wwww欧美| 韩日视频一区 | 成人精品区 | 尤物193.com | 欧美一级日韩 | www.日韩欧美 | 尤物在线精品 | 一区二区三区在线免费观看视频 | 成人精品一区二区三区电影黑人 | 成人免费视频国产免费网站 | 国产一二在线 | 欧美一级黄 | 国产视频成人 | 全部免费毛片在线播放一个 | 日韩在线国产精品 | 在线观看亚洲 | 精品在线一区二区 | 欧美手机在线观看 | 国产精品久久久久一区二区三区 |