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

歡迎訪問 生活随笔!

生活随笔

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

Android

【Android 应用开发】Activity 返回堆栈清除操作 ( 默认状态 | 清除返回堆栈配置 | 不清除返回堆栈配置 | 清除指定界面配置 )

發布時間:2025/6/17 Android 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 应用开发】Activity 返回堆栈清除操作 ( 默认状态 | 清除返回堆栈配置 | 不清除返回堆栈配置 | 清除指定界面配置 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

        • I . 返回堆棧 默認操作
        • II . 返回堆棧 保留所有元素操作
        • III . 返回堆棧 清除除根元素外所有元素操作
        • IV . 返回堆棧 清除指定的 Activity
        • V . 總結



I . 返回堆棧 默認操作



任務進入后臺 然后 恢復前臺運行 返回堆棧 的 默認處理機制 :


① 長時間掛起任務 : 如果任務長時間在后臺掛起 , 系統會清除 該任務返回堆棧中除 根 Activity ( 棧底元素 ) 之外的其它 Activity 界面 ;

② 短時間掛起后立刻返回 : 如果任務只是短時間進入后臺 , 那么任務中所有的 Activity 都會保留 ;


是否保留任務的返回堆棧 , 依據是 任務進入后臺的 時間 長短 , 這個時間是一個不確定的值 , 由系統決定 ;

( 參考時間 : 30 分鐘 )


如果開發者不做額外設置 , 那么就會按照上述情況進行默認處理 ;



II . 返回堆棧 保留所有元素操作



上面講解了默認狀態下 , 任務進入后臺的處理機制 , 如果不想任務中的返回堆棧被清空 , 那么可以設置 android:alwaysRetainTaskState 屬性 , 可以保留返回堆棧的信息 ;


1 . 設置 android:alwaysRetainTaskState 屬性為 true 效果 : 不管 任務在后臺掛起多長時間 , 返回堆棧都會保留所有的 Activity ;

<activity android:name=".MainActivity"android:alwaysRetainTaskState="true"/>

2 . android:alwaysRetainTaskState 屬性 默認值 : 該屬性值默認為 false , 即默認情況下 任務處于后臺一段時間 , 會被清除 根 Activity 之外的其它元素 ;


3 . android:alwaysRetainTaskState 屬性設置起作用的前提條件 : 只有 根 Activity 的該屬性設置是有效的 , 其它 Activity 的即使設置了該屬性 , 也是無效的 ;



III . 返回堆棧 清除除根元素外所有元素操作



上面講解了默認狀態設置 , 任務必須保留狀態設置 , 還剩下一個 任務必須 清空 除 根元素之外的所有元素 的設置 , 即 android:clearTaskOnLaunch 配置 ;


1 . 設置 android:clearTaskOnLaunch 屬性為 true 效果 : 只要任務進入后臺 , 再次返回時 , 哪怕是瞬間返回 , 返回堆棧只剩下根元素 , 其它元素全部被清空 ;

<activity android:name=".MainActivity"android:clearTaskOnLaunch ="true"/>

2 . android:clearTaskOnLaunch 屬性 默認值 : 該屬性值默認為 false , 即默認情況下 任務進入后臺 , 短時間內回到前臺 不會清空 返回堆棧中的元素 ;


3 . android:clearTaskOnLaunch 屬性設置起作用的前提條件 : 只有 根 Activity 的該屬性設置是有效的 , 其它 Activity 的即使設置了該屬性 , 也是無效的 ;


該設置與 android:alwaysRetainTaskState 設置相反 ;



IV . 返回堆棧 清除指定的 Activity



上面的三種配置都是針對 根 Activity 進行操作 , 下面我們討論針對指定的 Activity 進行配置 ;


設置 android:finishOnTaskLaunch = “true” 效果 :


① 作用范圍 : 該設置只針對單個 Activity 起作用 , 并不是針對整個返回堆棧設置的 ;

② 作用效果 : 當任務從后臺返回前臺運行時 , 如果該配置設置 “true” , 那么該任務中的 Activity 界面就會消失 ;

③ 優先級 : 該配置的優先級略高 , 當 android:allowTaskReparenting 屬性 與 該屬性同時配置時 , 如果該界面的任務進入前臺 , 不會將該界面重新分配


關于 android:allowTaskReparenting 屬性 , 在講解親和性那一章博客有詳細說明 :
【Android 應用開發】Activity 任務親和性 taskAffinity 設置 ( taskAffinity 屬性 )



V . 總結



返回堆棧清除管理 總結 :


① 默認狀態下 : 任務進入后臺 , 如果超過一定時間 , 就會清除除根 Activity 之外的其它元素 , 短時間內進入前臺 , 會恢復完整的返回堆棧 ;

② 任務進入后臺 , 必須清除返回堆棧配置 : android:clearTaskOnLaunch =“true” ;

③ 任務進入后臺 , 必須不能清除返回堆棧配置 : android:alwaysRetainTaskState = “true” ;

④ 任務進入后臺 , 清除指定的 Activity 實例 : android:finishOnTaskLaunch = "true"

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

總結

以上是生活随笔為你收集整理的【Android 应用开发】Activity 返回堆栈清除操作 ( 默认状态 | 清除返回堆栈配置 | 不清除返回堆栈配置 | 清除指定界面配置 )的全部內容,希望文章能夠幫你解決所遇到的問題。

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