咖啡伴侶

          呆在上海
          posts - 163, comments - 156, trackbacks - 0, articles - 2

          activity launchmode

          Posted on 2011-09-02 13:11 oathleo 閱讀(320) 評論(0)  編輯  收藏 所屬分類: Android
                  <activity android:name=".LoginActivity" android:label="@string/app_name" android:launchMode="singleTask">

          launchmode4種模式:
          1,standard:
          如果從A跳到A,intent5次,task里5個activity;
          2,single Top:
          如果從A 跳B,再從B跳A,如果此時棧頂為A,則不創建新實例,直接把Intent給A,但如果棧頂不是A,則還要創建A的實例
          3,singleTask
          如果從A跳B,再從B跳A,無論是否棧頂棧底,只要A在,則將Intent給A,不會創建A的新實例;
          4,singleInstance
          不同于前3種模式,前3種只是在同一個task的,而實例化的策略不同。這種模式下的activity會單獨存在一個task下。
          現成的例子是google地圖。比如我有一個應用是導游方面的,其中調用的google地圖Activity。那么現在我比如按home(后臺 activity onstop,back是finish)鍵,然后到應用列表中打開google地圖,你會發現顯示的就是剛才的地圖,實際上是同一個Activity。
          如果使用上面三種模式,是無法實現這個需求的。google地圖應用中有多個上下文Activity,比如路線查詢等的,導游應用也有一些上下文Activity。在各自應用中回退要回退到各自的上下文Activity中。
          總結:
          1 2:會創建新實例
          3 4:不會創建新實例
          123:activity的taskid相同
          4:activity的taskid不同。被分到單獨一個task中
          主站蜘蛛池模板: 东乌珠穆沁旗| 麟游县| 瑞丽市| 瓦房店市| 云阳县| 千阳县| 渭南市| 靖远县| 临泉县| 姜堰市| 德惠市| 镇巴县| 防城港市| 阳春市| 南安市| 秦安县| 平舆县| 库尔勒市| 喜德县| 承德市| 屏山县| 依安县| 吉隆县| 双鸭山市| 高州市| 汾阳市| 济源市| 大埔区| 榆树市| 桦川县| 苍南县| 平顶山市| 德保县| 大悟县| 南漳县| 旌德县| 金寨县| 陈巴尔虎旗| 土默特左旗| 台安县| 贵德县|