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

歡迎訪問 生活随笔!

生活随笔

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

Android

【Android 应用开发】Android 返回堆栈管理 ( 默认启动模式 | 栈顶复用启动模式 | 栈内复用启动模式 | 单实例启动模式 | CLEAR_TOP 标识 )

發布時間:2025/6/17 Android 29 豆豆

文章目錄

        • I . 默認啟動模式 ( standard )
        • II . 棧頂復用啟動模式 ( singleTop )
        • III . 棧內復用啟動模式 ( singleTask )
        • IV . 單實例啟動模式 ( singleInstance )
        • V . 棧內復用 FLAG 標識 ( FLAG_ACTIVITY_CLEAR_TOP )



I . 默認啟動模式 ( standard )



默認模式 ( standard ) : 最簡單的模式 , 每次啟動一個 Activity 就創建一個新的 Activity 實例 , 放入返回堆棧中 ;


AndroidMenifest.xml 設置方式 :

<activityandroid:name=""android:launchMode="standard"/>

總結 : 默認模式下 , Activity 是可以實例化多次的 , 返回堆棧內可以相鄰存放相同的 Activity 界面實例 ;



II . 棧頂復用啟動模式 ( singleTop )



棧頂復用模式 ( singleTop ) : 要跳轉到 Activity X ;

① 如果 發現當前返回堆棧棧頂的界面就是 Activity X 實例 , 會直接調用該 Activity X 實例 的 onNewIntent() 方法 , 將跳轉用的 Intent 轉給棧頂的 Activity X 實例 , 不再創建新的界面入棧 ;

② 如果 返回堆棧 內沒有 Activity X 實例 , 那么創建一個新 Activity X 實例并入棧 ;

③ 如果返回堆棧內 有 Activity X 實例 , 但是沒有在棧頂 , 那么也創建一個新 Activity X 實例并入棧 ;


AndroidMenifest.xml 設置方式 :

<activityandroid:name=""android:launchMode="singleTop"/>

Intent 標志位 設置方式 :

Intent intent = new Intent(); intent.setClass(FirstActivity.this, SecondActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); startActivity(intent);

III . 棧內復用啟動模式 ( singleTask )



獨立任務 啟動模式 ( singleTask ) : 要跳轉到 Activity X ;

① 發現 現有任務的 返回堆棧中存在 Activity X 實例 , 會直接調用該 Activity X 實例 的 onNewIntent() 方法 , 將跳轉用的 Intent 轉給棧頂的 Activity X 實例 , 不再創建新的界面入棧 , 同時會將返回堆棧內該 Activity X 實例之上的 Activity 界面進行出棧操作 ;

② 如果現有任務中不存在該實例 , 那么會創建新的 任務 及 返回堆棧 , 實例化新的 Activity X 對象 , 并當做根 Activity ;


使用場景 : 在自己的應用中 , 啟動第三方瀏覽器 或 播放器 , 那么這些第三方的應用界面 , 不應該加入到自己開發的任務棧中 , 而是創建一個新任務 , 將這些第三方的應用啟動界面 , 放入新的返回堆棧中 , 這些啟動界面應該設置成 singleTask 模式 ;

如果這些第三方應用已經被啟動過 , 在后臺運行 , 那么再次啟動會將這個界面所在的任務轉到前臺運行 ;


AndroidMenifest.xml 設置方式 :

<activityandroid:name=""android:launchMode="singleTask"/>

Intent 標志位 設置方式 :

Intent intent = new Intent(); intent.setClass(FirstActivity.this, SecondActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);

要注意區分 棧內復用模式 ( singleTask 啟動模式 ) 與 Intent 標志位 : Intent.FLAG_ACTIVITY_CLEAR_TOP 的區別 , 這兩個設置的行為不完全一致 ;
FLAG_ACTIVITY_CLEAR_TOP 標志位不會啟動新的任務 ;


一般情況下 , 在應用中是不適用該啟動模式的 , 常用 FLAG_ACTIVITY_CLEAR_TOP 與 默認啟動模式 ( standard ) 結合的方式實現 返回堆棧內只有一個 特定的 Activity ;



IV . 單實例啟動模式 ( singleInstance )



單實例啟動模式 ( singleInstance ) : 要跳轉到 Activity X ( singleInstance 啟動模式 ) ;

① 不存在實例 : 如果當前所有任務中 , 都沒有 Activity X 實例 , 那么在一個新任務中創建 Activity X 實例 , 并放入返回堆棧 棧底 ;

② 存在實例 : 如果當前其它任務中有該實例 , 那么通過調用 onNewIntent() 方法轉到該實例 ;

③ 獨占返回堆棧 : 該 Activity X 實例所在的堆棧只有一個界面實例 , 即 一個任務只有這唯一的一個 界面 ;

④ 啟動其它界面 : 在該 單實例啟動模式 ( singleInstance ) 界面中啟動其它界面 , 都在其它的任務中打開 , 本任務只能有這一個界面 ;


AndroidMenifest.xml 設置方式 :

<activityandroid:name=""android:launchMode="singleInstance"/>

這個模式一般也不常用 ;



V . 棧內復用 FLAG 標識 ( FLAG_ACTIVITY_CLEAR_TOP )



1 . FLAG_ACTIVITY_CLEAR_TOP 標識 : 要跳轉到 Activity X ;

① 存在該 Activity 實例 : 發現當前返回堆棧中存在 Activity X 實例 , 會直接調用該 Activity X 實例 的 onNewIntent() 方法 , 將跳轉用的 Intent 轉給棧頂的 Activity X 實例 , 不再創建新的界面入棧 , 同時會將返回堆棧內該 Activity X 實例之上的 Activity 界面進行出棧操作 ;

( 這個操作與棧內復用啟動模式相同 , 但是僅限于返回堆棧中存在該實例的情況 , 如果不存在 , 就要執行別的操作 )

② 不存在該 Activity 實例 : 如果當前返回堆棧中沒有該 Activity X 實例 , 就需要根據該 Activity 配置的啟動模式的行為來啟動新的界面 ;


2 . Intent 標志位 設置方式 :

Intent intent = new Intent(); intent.setClass(FirstActivity.this, SecondActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent);

3 . 常用場景 : 經常使用 FLAG_ACTIVITY_CLEAR_TOP 與 默認啟動模式 ( standard ) 結合的方式實現 返回堆棧內只有一個 特定的 Activity ;

① 不存在 : 當前返回堆棧中如果沒有該界面 , 那么創建一個新的界面 , 放入該返回堆棧中 ;

② 存在 : 當前返回堆棧中如果有該界面 , 那么直接復用該界面 , 該界面上面的 Activity 直接退棧處理 ;

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的【Android 应用开发】Android 返回堆栈管理 ( 默认启动模式 | 栈顶复用启动模式 | 栈内复用启动模式 | 单实例启动模式 | CLEAR_TOP 标识 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 依人成人 | 午夜两性视频 | 91亚色视频| 天天色天天射综合网 | 狠狠躁18三区二区一区 | 国产女主播在线观看 | 成人在线电影网站 | 亚洲熟妇av一区二区三区 | 成人激情站 | 玖玖爱在线精品视频 | 四虎成人精品永久免费av九九 | xxx日本黄色 | 91网页在线观看 | 日本中文字幕网站 | 午夜电影网一区 | 韩国伦理片在线播放 | 亚洲欧美日韩在线 | 一区二区视| 亚洲午夜久久久久久久久久久 | 蜜桃网站| 懂色av一区二区三区四区五区 | 97视频资源| 欧美日韩亚洲一区 | 国产av精国产传媒 | 杨幂一区二区国产精品 | 亚洲AV无码成人精品一区 | 姝姝窝人体www聚色窝 | 日韩理论在线观看 | 国产成人精品综合久久久久99 | 国产综合无码一区二区色蜜蜜 | 91久久一区二区 | 国产极品福利 | 日本三级吃奶头添泬 | 小黄网站在线观看 | 午夜国产在线观看 | 黑森林福利视频导航 | 久久免费高清视频 | 天天操天天操 | 夜夜嗨av一区二区三区 | 国产男男一区二区三区 | 五月天激情电影 | 亚洲欧美自拍另类 | 亚洲高清毛片一区二区 | 免费av的网站 | 成人精品免费视频 | 一级 黄 色 片69 | 日本精品一区二区三区四区的功能 | 国产亚洲毛片 | 少妇无套内谢免费视频 | 亚洲一区91 | 亚洲成年人专区 | 无码人妻精品一区二区三区不卡 | 国产又粗又猛又爽69xx | 青青草原国产在线 | 亚洲最大成人在线视频 | 外国黄色网址 | 久草网在线观看 | 国产中文欧美日韩在线 | 宅男午夜影院 | 国产成人在线观看 | 久久久久久久av | 亚洲男女在线观看 | 亚洲清色| 国产日韩欧美不卡 | 亚洲成人少妇 | 亚欧精品在线观看 | 国产一区二区中文字幕 | 国产a∨精品一区二区三区仙踪林 | 91国产精品一区 | 天堂中文在线免费观看 | 殴美一区二区 | 国产精品久久久久桃色tv | 噼里啪啦免费高清看 | 国产乱人乱偷精品视频 | 日日艹 | 99在线观看免费视频 | 一区二区三区四区在线播放 | 青草一区 | 天天摸天天操 | 国产在线精品成人欧美 | 天天色综合天天 | 1024亚洲 | 好吊色视频988gao在线观看 | 中文字幕在线免费视频 | 秋霞av网| 中文字幕黑人 | 欧美在线免费看 | 久久久一区二区三区四区 | 免费看裸体视频网站 | www.sesehu| 精品欧美一区二区三区 | 69国产精品视频免费观看 | 精品国产xxx | av免费大全 | 国产视频福利在线观看 | 老熟妇仑乱视频一区二区 | 熟妇毛片 | 四虎在线播放 | 日韩欧美精品在线播放 |