天天看點

Android的四種啟動模式(launchModel)

一、啟動模式介紹

  啟動模式簡單地說就是Activity啟動時的政策,在AndroidManifest.xml中的标簽的android:launchMode屬性設定;

  啟動模式有4種,分别為standard、singleTop、singleTask、singleInstance;

講解啟動模式之前,有必要先講解一下“任務棧”和"隊列"的概念;

     棧,我們可以簡單的記為先進後出,和上電梯一樣.就比如說我們預設的建立一系列的Activity,我們建立Activity1,從Activity1調到Activity2,再從Activity2跳到Activity3,但是我們按回退鍵的時候是先退出Activity3再退出Activity2,最後退出Activity1

    隊列,我們可以簡單的記為排隊買飯,先到先買,就比如說我們的一個RequestQueue(Vollay隊列),我們add到裡面的任務,會先添加先執行.

二、啟動模式

           (1)standard: 即預設的,當我們未指定時系統預設的即為此模式,每次激活Activity時(startActivity),都建立Activity執行個體,并放入任務棧;

       (2)singleTop:如果某個Activity自己激活自己,即任務棧棧頂就是該Activity,則不需要建立,其餘情況都要建立Activity執行個體;

       (3)singleTask:如果要激活的那個Activity在任務棧中存在該執行個體,則不需要建立,隻需要把此Activity放入棧頂,并把該Activity以上的Activity執行個體都pop;

       (4)singleInstance:一個Activity獨用一個任務棧,不管建立的Activity是那種啟動模式,獨用一個棧的的Activity都不會允許第二個Activity進入;