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

歡迎訪問 生活随笔!

生活随笔

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

Android

activity 启动模式_Android世界:Activity的启动模式及其适用范围

發(fā)布時(shí)間:2025/3/21 Android 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 activity 启动模式_Android世界:Activity的启动模式及其适用范围 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、Activity啟動(dòng)模式簡介

activity啟動(dòng)模式,可以理解為activity在任務(wù)棧(也叫“回退棧”)的回退規(guī)則,即點(diǎn)擊“back”鍵時(shí),activity的執(zhí)行順序。為節(jié)省資源,方便調(diào)用,Android構(gòu)建不同的啟動(dòng)模式以便于開發(fā)者在不同場(chǎng)景使用。

該屬性聲明在Manifest文件中,由launchMode進(jìn)行配置,內(nèi)含4種啟動(dòng)模式,如下:

補(bǔ)充:任務(wù)棧,是一個(gè)先進(jìn)后出的存儲(chǔ)空間,存放運(yùn)行過程中的各activity對(duì)象引用。


二、啟動(dòng)模式介紹及使用場(chǎng)景

聲明:下方各流程圖均來源于https://blog.csdn.net/zy_jibai/article/details/80587083,有興趣可以去看看。


Standard:標(biāo)準(zhǔn)模式,不聲明該屬性時(shí),默認(rèn)模式。啟動(dòng)activity時(shí),將activity對(duì)象放置到任務(wù)棧的棧頂,如果不存在任務(wù)棧,首先創(chuàng)建一個(gè)任務(wù)棧;正常創(chuàng)建、銷毀activity。

優(yōu)點(diǎn):便于activity的正常管理,邏輯相對(duì)簡單;

缺點(diǎn):同一activity可能被創(chuàng)建多次,不利于activity的重用,造成資源的浪費(fèi);


SingleTop:單頂模式,當(dāng)activity存在于棧頂時(shí),不會(huì)重構(gòu)activity,而是調(diào)用onNewIntent(Intent intent)方法加載之前的頁面;當(dāng)activity不存在于棧頂,就會(huì)重新構(gòu)建activity,并將其顯示到棧頂;

優(yōu)點(diǎn):在棧頂時(shí),重用棧頂activity;

缺點(diǎn):activity可能存在多次創(chuàng)建;

適用場(chǎng)景:①來推送消息后,點(diǎn)擊消息跳轉(zhuǎn)到詳情界面,防止創(chuàng)建多個(gè)界面;②即時(shí)通訊的聊天界面等。


SingleTask:單任務(wù)棧模式;當(dāng)activity不存在于任務(wù)棧,進(jìn)行創(chuàng)建;當(dāng)存在于任務(wù)棧中,即移除其頂部的activity,將其移到棧頂,顯示出來。

優(yōu)點(diǎn):actiivity重用,只存在一個(gè)activity;節(jié)約內(nèi)存,用戶體驗(yàn)好;

缺點(diǎn):移除其他activity,不利用管理;

適用范圍:應(yīng)用的啟動(dòng)界面,防止其他應(yīng)用在調(diào)啟時(shí),創(chuàng)建多個(gè)應(yīng)用界面;如:網(wǎng)易新聞的新聞界面(MainActivity)

做瀏覽器、微博之類的應(yīng)用,比如其他App需要打開我們的瀏覽器頁面,就可以配置他為singleTask模式,保證他只有一個(gè)唯一實(shí)例,節(jié)約內(nèi)存同時(shí)按下返回鍵后的感官也更順暢。但是需要注意,提供給人調(diào)用的頁面最好是棧底元素。


SingleInstance:單實(shí)例模式,創(chuàng)建的activity位于新的task中。如果已經(jīng)創(chuàng)建過目標(biāo)Activity實(shí)例,則不會(huì)創(chuàng)建新的Task,而是將以前創(chuàng)建過的Activity喚醒。

優(yōu)點(diǎn):

1. 以singleInstance模式啟動(dòng)的Activity具有全局唯一性,即整個(gè)系統(tǒng)中只會(huì)存在一個(gè)這樣的實(shí)例。

2. 以singleInstance模式啟動(dòng)的Activity在整個(gè)系統(tǒng)中是單例的,如果在啟動(dòng)這樣的Activiyt時(shí),已經(jīng)存在了一個(gè)實(shí)例,那么會(huì)把它所在的任務(wù)調(diào)度到前臺(tái),重用這個(gè)實(shí)例。

3. 以singleInstance模式啟動(dòng)的Activity具有獨(dú)占性,即它會(huì)獨(dú)自占用一個(gè)任務(wù),被他開啟的任何activity都會(huì)運(yùn)行在其他任務(wù)中。

4. 被singleInstance模式的Activity開啟的其他activity,能夠在新的任務(wù)中啟動(dòng),但不一定開啟新的任務(wù),也可能在已有的一個(gè)任務(wù)中開啟。

原文:https://blog.csdn.net/zivensonice/article/details/51569502

缺點(diǎn):不利于回收利用資源;

適用場(chǎng)景:需要全局只創(chuàng)建一個(gè)activity的場(chǎng)景,如,網(wǎng)易新聞的鎖屏界面、手機(jī)來電界面等;

總結(jié)

以上是生活随笔為你收集整理的activity 启动模式_Android世界:Activity的启动模式及其适用范围的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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