轉(zhuǎn)載:http://www.cnblogs.com/allenzheng/archive/2013/04/28/3050065.html
當(dāng)應(yīng)用運行起來后就會開啟一條線程,線程中會運行一個任務(wù)棧,當(dāng)Activity實例創(chuàng)建后就會放入任務(wù)棧中。Activity啟動模式的設(shè)置在AndroidManifest.xml文件中,通過配置Activity的屬性android:launchMode=""設(shè)置。
1. Standared模式(默認(rèn))
我們平時直接創(chuàng)建的Activity都是這種模式的Activity,這種模式的Activity的特點是:只要你創(chuàng)建了Activity實例,一旦激活該Activity,則會向任務(wù)棧中加入新創(chuàng)建的實例,退出Activity則會在任務(wù)棧中銷毀該實例。
2. SingleTop模式
這種模式會考慮當(dāng)前要激活的Activity實例在任務(wù)棧中是否正處于棧頂,如果處于棧頂則無需重新創(chuàng)建新的實例,會重用已存在的實例,否則會在任務(wù)棧中創(chuàng)建新的實例。
3. SingleTask模式
如果任務(wù)棧中存在該模式的Activity實例,則把棧中該實例以上的Activity實例全部移除,調(diào)用該實例的newInstance()方法重用該Activity,使該實例處於棧頂位置,否則就重新創(chuàng)建一個新的Activity實例。
4. SingleInstance模式
當(dāng)該模式Activity實例在任務(wù)棧中創(chuàng)建后,只要該實例還在任務(wù)棧中,即只要激活的是該類型的Activity,都會通過調(diào)用實例的newInstance()方法重用該Activity,此時使用的都是同一個Activity實例,它都會處于任務(wù)棧的棧頂。此模式一般用于加載較慢的,比較耗性能且不需要每次都重新創(chuàng)建的Activity。