Activity 的 launch mode 可以透過 android:launchMode 來設定,總共有四種 launch mode:
- standard
這是 default 的 launch mode,Activity 每次都會建立一個新的實體。
EX1: A -> B(standard),在 B 啟動 B,A -> B -> B。
EX2: A(standard) -> B,返回上層,Activity A 會被重新建立。
- singleTop
如果當下的 Activity 在 stack 的最上面,則不會建立新的實體,反之則會。
EX1: A(singleTop) -> B -> C,在 C 啟動 A,A -> B -> C -> A。
EX2: A(singleTop) -> B,返回上層,Activity A 不會被重新建立。
- singleTask
不會建立新的實體,而且總是在 stack 中的最前頭(下層)。
(Google 說總是在 stack 中的最前頭(下層) 也不全然正確)
EX1: A -> B(singleTask) -> C -> D ,在 D 啟動 B,A -> B,C 和 D 會被移除。
- singleInstance
不會建立新的實體,而且是 stack 中唯一的 Activity。
EX1: A -> B -> C ,在 C 啟動 D(singleInstance),[A -> B -> C] -> [D]。
沒有留言:
張貼留言