2 回答

TA貢獻2條經(jīng)驗 獲得超0個贊
當應用運行起來后就會開啟一條線程,線程中會運行一個任務棧,當Activity實例創(chuàng)建后就會放入任務棧中。Activity啟動模式的設置在AndroidManifest.xml文件中,通過配置Activity的屬性android:launchMode=""設置。
1. Standared模式(默認)
我們平時直接創(chuàng)建的Activity都是這種模式的Activity,這種模式的Activity的特點是:只要你創(chuàng)建了Activity實例,一旦激活該Activity,則會向任務棧中加入新創(chuàng)建的實例,退出Activity則會在任務棧中銷毀該實例。
2. SingleTop模式
這種模式會考慮當前要激活的Activity實例在任務棧中是否正處于棧頂,如果處于棧頂則無需重新創(chuàng)建新的實例,會重用已存在的實例,否則會在任務棧中創(chuàng)建新的實例。
3. SingleTask模式
如果任務棧中存在該模式的Activity實例,則把棧中該實例以上的Activity實例全部移除,調(diào)用該實例的newInstance()方法重用該Activity,使該實例處於棧頂位置,否則就重新創(chuàng)建一個新的Activity實例。
4. SingleInstance模式
當該模式Activity實例在任務棧中創(chuàng)建后,只要該實例還在任務棧中,即只要激活的是該類型的Activity,都會通過調(diào)用實例的newInstance()方法重用該Activity,此時使用的都是同一個Activity實例,它都會處于任務棧的棧頂。此模式一般用于加載較慢的,比較耗性能且不需要每次都重新創(chuàng)建的Activity。
添加回答
舉報