Activity launchMode

Activity有四種launchMode
  • standard
  • singleTop
  • singleTask
  • singleInstance
可在androidManifest.xml中設定

 <activity android:name=".classA" android:launchMode="singleInstance"</activity>

standard:
內定的launchMode, 沒有在androidManifest.xml中指定android:launchMode,程式會會自已定為standard。standard,模式為每一個activity都會開一個新的activity。

singleTop:
如果activity已在最上層(Top顧名思意),就不再開新的activity(所以叫single)。如果activity在另一個activity下層,就開一個新的activity。
例:actA->actB 此時在actB中開啟actA就會變成actA->actB->actA

singleTask:
承上例,如果希望actA->actB,在actB中開放actA如果不希望再開一個新的actA,那就是singleTask。所謂 singleTask的意思就是指,同一個Task(任務)中只能只一個(single)actA。

所以不管是standard, singleTop, 或是singleTask,都是在同一個task中如何開activity的方法。

singleInstance:
指要開啟的activity要給一個新的task。也就是說,如果actA是standard開啟,actB是singleInstance開啟那麼會變成

actA(task id 1)->actB(task id 2)->actA2(taskid 1)

這樣跟singleTop有什麼分別呢?

在返回時不同。

如果是singleTask  actA(task id 1)->actB(task id 1)->actA2(taskid 1) 返回會是

actA2->actB->actA1

如果是singleInstance   actA(task id 1)->actB(task id 2)->actA2(taskid 1) 返回會是

actA2->actA1

留言

這個網誌中的熱門文章

python 找圖自動點擊

Python pyserial 抓取系統內的 COM PORT

VBA EXCEL 工作表變化 馬上執行 的作法 Worksheet_Change