任務和返回棧

2021-07-07 08:46:49 字數 1689 閱讀 4081

一、設定activity啟動模式

1、使用manifest檔案:

"standard" | "singletop" |

"singletask" | "singleinstance"]

android:allowtaskreparenting=["false" | "true"]

android:alwaysretaintaskstate=["false" | "true"]

android:cleartaskonlaunch=["false" | "true"]

android:finishontasklaunch=["false" | "true"]

... >

...

「standard」(預設模式)

系統在啟動該activity的任務中建立乙個它的新例項。每個任務中可以有多個它的例項。

「singletop」

在當前任務的棧頂若已有該activity例項,則不建立,而是呼叫其onnewintent()方法。每個任務中可以有多個它的例項,但棧頂只能有乙個。

「singletask」

首次啟動該acitity時,把它放到乙個新的任務中。此後若再啟動就呼叫其onnewintent()方法。整個系統只有乙個它的例項。

「singleinstance」

在」singletask」的基礎上,該activity所在的任務僅有它這個activity。它啟動的其他activity都會在新的任務中開啟。

allowtaskreparenting

如果設為」true」,且該activity已啟動,則當它被其他任務中的activity再次啟動時,系統會把它移動到剛啟動它的任務中。

alwaysretaintaskstate

預設情況下,在某個任務失去使用者焦點一段時間後,系統會保留根activity並清除其他activity。如果任務中的根activity把它設為」true」,則系統會一直保留所有activity(除非系統記憶體不足需要騰地方)。

cleartaskonlaunch

與上乙個相反,如果任務中的根activity把它設為」true」,則當任務失去使用者焦點後,將保留根activity並清除其他activity。

finishontasklaunch

若設為」true」,則當任務失去使用者焦點後,該activity將被銷毀。

2、使用intent標誌:

// 給啟動activity所用的intent新增標誌

intent.addflags(intent.flag_activity_***);

flag_activity_new_task

與上述」singletask」等同。

flag_activity_single_top

與上述」singletop」等同。

flag_activity_clear_top

若任務中已有該activity例項,則清除在其上方的所有activity,恢復該例項並呼叫其onnewintent()方法。

參考資料:

android > develop > api guides > tasks and back stack

備註:

與總覽螢幕(overview screen)相關的內容請參看:

android > develop > api guides > overview screen

任務和返回棧

應用通常包含多個 activity 每個 activity 均應圍繞使用者可以執行的特定操作設計,並且能夠啟動其他 activity。例如,電子郵件應用可能有乙個 activity 顯示新郵件的列表。使用者選擇某郵件時,會開啟乙個新 activity 以檢視該郵件。乙個 activity 甚至可以啟...

Activity任務和返回棧

1,介紹 任務是指在執行特定作業時與使用者互動的一系列 activity。這些 activity 按照各自的開啟順序排列在堆疊 即返回棧 中 任務棧的作用是用來維護activity,開啟乙個activity 進棧,關閉乙個activity叫出棧 一般情況乙個應用程式對應乙個任務棧我們操作的activ...

系統棧和任務棧 freertos

startup stm32h743xx.s中的 stack size equ 0x00000400 heap size equ 0x00000200 即堆疊空間大小 和freertosconfig.h中 define configminimal stack size unsigned short 1...