咖啡伴侶

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

          activity launchmode

          Posted on 2011-09-02 13:11 oathleo 閱讀(328) 評論(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中
          主站蜘蛛池模板: 玉山县| 顺昌县| 鄱阳县| 黄石市| 深水埗区| 湘潭县| 无极县| 安新县| 萍乡市| 大田县| 正宁县| 阿鲁科尔沁旗| 孟津县| 德阳市| 宝兴县| 哈巴河县| 普兰店市| 固安县| 理塘县| 景德镇市| 襄汾县| 勐海县| 闽侯县| 错那县| 大石桥市| 花莲县| 民权县| 张北县| 齐河县| 顺平县| 闸北区| 揭西县| 金塔县| 定兴县| 溧阳市| 桐庐县| 梁山县| 新化县| 临猗县| 和静县| 奇台县|