咖啡伴侶

          呆在上海
          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中
          主站蜘蛛池模板: 定州市| 卢湾区| 姚安县| 卢氏县| 凤冈县| 咸阳市| 曲周县| 柳河县| 鹿泉市| 苗栗县| 文山县| 洛扎县| 宿州市| 无锡市| 鄯善县| 巴林右旗| 淮南市| 福贡县| 上高县| 西藏| 云安县| 苗栗县| 济南市| 会理县| 宿松县| 霍邱县| 中江县| 朝阳区| 衡南县| 子长县| 拉孜县| 岚皋县| 甘德县| 宜君县| 宾阳县| 上杭县| 星座| 柳河县| 墨竹工卡县| 包头市| 贺兰县|