launchMode在多個Activity跳轉的過程當中扮演着重要的角色,它能夠決定是否生成新的Activity實例,是否重用已存在的Activity實例,是否和其餘Activity實例公用一個task裏。這裏簡單介紹一下task的概念,task是一個具備棧結構的對象,一個task能夠管理多個Activity,啓動一個應用,也就建立一個與之對應的task。android
Activity一共有如下四種launchMode:xml
1.standard對象
standard模式是默認的啓動模式.無論有沒有已存在的實例,都生成新的實例。ci
2.singleTopit
跳轉時系統會先在棧結構中尋找是否有一個當前實例正位於棧頂,若是有則再也不生成新的,而是直接使用。系統發現存在有當前實例,但不是位於棧頂,因而從新生成一個實例。配置
3.singleTaskactivity
若是發現有對應的Activity實例,則使此Activity實例之上的其餘Activity實例通通出棧,使此Activity實例成爲棧頂對象,顯示到幕前。vi
4.singleInstance生成
這種啓動模式比較特殊,由於它會啓用一個新的棧結構,將Acitvity放置於這個新的棧結構中,並保證再也不有其餘Activity實例進入。實例
咱們能夠在AndroidManifest.xml配置<activity>的android:launchMode屬性爲以上四種之一便可。