Activity 的啟動模式 以及與AppManager類的關係

weixin_34087301發表於2017-02-22

Activity的四種啟動模式分別為:standard、singleTop、singleTask、singleInstance
有兩種配置方式

  1. 清單檔案中的Activity配置使用:android:launchMode=""屬性指定啟動模式
  2. Intent intent = new Intent(this, MainActivity.class);
    //相當於singleTask
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
    FLAG_ACTIVITY_NEW_TASK相當於singleTask
    下邊說一下每一種啟動模式所代表的意思
    1、standard:預設模式,每次啟動都會建立一個新的Activity物件,放到目標任務棧的棧頂
    2、singleTop:判斷當前的任務棧頂是否存在相同的Activity,如果存在,直接使用,如果不存在,建立一個新的Activity物件放入棧頂
    3、singleTask:在任務棧中判斷是否存在相同的Activity,如果存在,那麼會清楚該Activity之上的所有Activity物件顯示,
    如果不存在,建立一個新的Activity物件放入棧頂
    4、singleInstance:會在一個新的任務棧中建立Activity,並且該任務棧中只允許存在一個Activity例項,
    說起啟動模式,就不得不說AppManager
    他是管理Activity的 首先確認啟動模式
    接下來
1966129-ad820f87ec712b44.png
A4C11146-FEBF-45CE-A69F-11ADEAA83363.png
1966129-5d3b0a1355cb511e.png
DED94032-5CD3-4756-B9FD-4F44C34FBA46.png
1966129-94345f8d238be15d.png
B51645E9-18A6-4141-9802-B24822A67599.png

例子地址:https://github.com/Johnjson/ActivityAppManager

相關文章