Task和backStack(本篇章核心)

2022-02-02 07:36:09 字數 1324 閱讀 3050

taskbackstack的認識過程

1.由demo測試得到的關係圖:

2.所以乙個task也可以對應多個process。

2.由adb shell dumpsys activity測試得到的關係圖:

1.android將所有的task維護在main stack中,

2.每個task由taskid唯一標識,在hist中包含了處於同乙個task內的activity,

3.通過學習原始碼得到的關係圖:

1.在activitymanagerservice中,由乙個activitystack物件維護回退棧,而具體到activitystack中,由mhistory來維護回退棧(是乙個arraylist,而非stack)。

2.每個task即為乙個taskrecord物件,

3.taskrecord沒有為每個task維護乙個自己的stack或list,

4.mhistory中,不是直接管理activity,而是維護activityrecord物件,

5.activityrecord物件通過taskrecord與自己所屬的task關聯起來,

6.activityrecord物件通過activity info物件與對應的activity關聯起來,

7.分析activitystack中的movetasktofrontlocked()等對task進行操作的**,得到,同乙個task的activityrecord在mhistory中是放在一起的(按照先入先出的順序),當乙個task被調到前台時,這個mhistory中,屬於同乙個task(taskid一致)的activityrecord被一起移到mhistory的頂端(在這個arraylist中,以最後乙個元素所在的位置為top,top=size()-1);

task0 最小棧 和task1(有效括號)

2.letecode2 堆疊和數列 stack and queue 2.1概念 2.1.1.棧都是一種資料項按序排列的資料結構,只能在一端 稱為棧頂 top 對資料項進行插入和刪除。棧,先進後出。2.1.2佇列是一種特殊的線性表,只允許在表的頭部 front處 進行刪除操作,在表的尾部 rear處 ...

Glance的Image和Task介紹

一 image image是glance的主要資源。類似於vmware的vm模板,它預先安裝了os。如果從image啟動vm,該vm被刪除後,image依然存在,但是image上不包含本次在該vm例項上的修改,因為image只是給vm啟動的模板。相對於整個openstack,nova是乙個虛擬機器的...

VScode中launch和task引數解釋

exe 需要除錯的程式 args 除錯時傳遞給程式的引數 stopatentry false 除錯時是否停在程式入口 cwd 工作目錄 environment 額外的環境變數 externalconsole true true 輸出到外部終端 false 只輸出到軟體終端 有顯示不全的可能 mimo...