當應用執行起來後就會開啟一條執行緒,執行緒中會執行一個任務棧,當Activity例項建立後就會放入任務棧中。Activity啟動模式的設定在AndroidManifest.xml檔案中,透過配置Activity的屬性android:launchMode=""設定。
1. Standared模式(預設)
我們平時直接建立的Activity都是這種模式的Activity,這種模式的Activity的特點是:只要你建立了Activity例項,一旦啟用該Activity,則會向任務棧中加入新建立的例項,退出Activity則會在任務棧中銷燬該例項。
2. SingleTop模式
這種模式會考慮當前要啟用的Activity例項在任務棧中是否正處於棧頂,如果處於棧頂則無需重新建立新的例項,會重用已存在的例項,否則會在任務棧中建立新的例項。
3. SingleTask模式
如果任務棧中存在該模式的Activity例項,則把棧中該例項以上的Activity例項全部移除,呼叫該例項的newInstance()方法重用該Activity,使該例項處於棧頂位置,否則就重新建立一個新的Activity例項。
4. SingleInstance模式
當該模式Activity例項在任務棧中建立後,只要該例項還在任務棧中,即只要啟用的是該型別的Activity,都會透過呼叫例項的newInstance()方法重用該Activity,此時使用的都是同一個Activity例項,它都會處於任務棧的棧頂。此模式一般用於載入較慢的,比較耗效能且不需要每次都重新建立的Activity。
當應用執行起來後就會開啟一條執行緒,執行緒中會執行一個任務棧,當Activity例項建立後就會放入任務棧中。Activity啟動模式的設定在AndroidManifest.xml檔案中,透過配置Activity的屬性android:launchMode=""設定。
1. Standared模式(預設)
我們平時直接建立的Activity都是這種模式的Activity,這種模式的Activity的特點是:只要你建立了Activity例項,一旦啟用該Activity,則會向任務棧中加入新建立的例項,退出Activity則會在任務棧中銷燬該例項。
2. SingleTop模式
這種模式會考慮當前要啟用的Activity例項在任務棧中是否正處於棧頂,如果處於棧頂則無需重新建立新的例項,會重用已存在的例項,否則會在任務棧中建立新的例項。
3. SingleTask模式
如果任務棧中存在該模式的Activity例項,則把棧中該例項以上的Activity例項全部移除,呼叫該例項的newInstance()方法重用該Activity,使該例項處於棧頂位置,否則就重新建立一個新的Activity例項。
4. SingleInstance模式
當該模式Activity例項在任務棧中建立後,只要該例項還在任務棧中,即只要啟用的是該型別的Activity,都會透過呼叫例項的newInstance()方法重用該Activity,此時使用的都是同一個Activity例項,它都會處於任務棧的棧頂。此模式一般用於載入較慢的,比較耗效能且不需要每次都重新建立的Activity。