### 影片介紹 - 影片將介紹 Android 系統中的 Tasks 和 Back Stack 基礎概念 - 將會深入探討 Activity 的啟動模式 (Launch Modes) ### Back Stack    - Back Stack 是一組已經打開的 Activity 堆疊,表示目前活動畫面和其歷史 - 每個應用程式都有一個 Back Stack,記錄用戶的畫面導航順序 - 例如瀏覽器應用程式:用戶從主頁畫面進入書籤畫面,書籤畫面將被推送至 Back Stack - 用戶點擊返回鍵時,當前畫面將從 Back Stack 中移除,返回上一個畫面 - Back Stack 表示畫面堆疊,最後進入的畫面會在堆疊的頂端 ### Task    - Task 是由多個相互關聯的 Activity 組成的一個單位 - 每個 Task 代表一組相關的 Activity,通常來自同一個應用程式 - 不同的應用程式可以有不同的 Task,Android 會記住用戶之前打開過的 Task - 例如,用戶從瀏覽器跳轉至 Instagram,這會形成一個新 Task - 當用戶在 Instagram 返回時,會回到之前的瀏覽器 Task ### Launch Modes (啟動模式) #### 1. **Standard (預設模式)**   - 每次打開新 Activity 都會創建一個新實例並推送到 Back Stack - 例如,從 Instagram 點擊連結打開 Chrome,會在 Back Stack 中新增一個新的 Chrome Activity #### 2. **Single Top (單一頂層模式)**   - 如果要打開的 Activity 已經位於 Back Stack 頂端,則不會創建新實例 - 適合避免重複導航至同一畫面 #### 3. **Single Task (單一任務模式)**   - 確保新 Activity 在一個獨立的 Task 中啟動,而不是覆蓋現有的 Task - 例如,用戶從 Instagram 點擊連結打開瀏覽器,返回時應回到 Instagram,而不是瀏覽器內的其他頁面 #### 4. **Single Instance (單一實例模式)**   - 與 Single Task 類似,但此模式下的 Task 無法再打開其他 Activity - 適用於像支付應用程式這類需隔離操作的應用場景 # Terminology - 任務(Task):表示一組活動(Activity),構成一個完整的用戶交互流程。 - 返回堆疊(Back Stack):由活動組成的堆疊,按照後進先出的方式管理屏幕顯示。 - 活動(Activity):Android應用中的單一屏幕,用來與用戶進行交互。 - 標準啟動模式(Standard Launch Mode):默認啟動模式,每次啟動新活動時會創建一個新的實例並放入返回堆疊。 - 單一頂部(Single Top):如果目標活動已在堆疊頂部,則不會創建新實例,而是重用已有實例。 - 單一任務(Single Task):每次啟動活動時,在單獨的任務中執行,避免返回已存在的任務堆疊。 - 單一實例(Single Instance):與單一任務相似,但該任務只能運行一個活動,且無法啟動其他活動。 - 螢幕轉換(Screen Transition):應用中不同活動或片段之間的切換過程。 - 回退操作(Back Navigation):用戶按下返回按鈕後,返回上一個活動或片段。 - 堆疊彈出(Pop Stack):當用戶返回上一頁時,從返回堆疊中移除當前活動。 - Intent:Android中的消息傳遞機制,用來啟動活動或服務。 - 深層連結(Deep Link):允許用戶通過URL直接導航到應用中的特定頁面。 - 隱式Intent(Implicit Intent):不指定具體活動,Android系統根據可處理該Intent的活動進行選擇。 - 顯式Intent(Explicit Intent):明確指定要啟動的活動或服務。 - 前景活動(Foreground Activity):目前正在與用戶交互的活動,位於返回堆疊頂部。 - 背景活動(Background Activity):未在前景顯示的活動,位於返回堆疊中。 - 片段(Fragment):活動中的子組件,代表一個界面或行為模塊。 - 任務親和力(Task Affinity):定義活動與任務的關聯性,影響活動被放置在哪個任務中。 - 視圖層級(View Hierarchy):Android應用中視圖組件的結構,從父視圖到子視圖的層次結構。 - 配置更改(Configuration Change):如屏幕旋轉、語言變更等導致活動重新創建的情況。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up