什么是Task
平桂網站建設公司創(chuàng)新互聯(lián),平桂網站設計制作,有大型網站制作公司豐富經驗。已為平桂成百上千家提供企業(yè)網站建設服務。企業(yè)網站搭建\成都外貿網站建設公司要多少錢,請找那個售后服務好的平桂做網站的公司定做!先講一下android中的Task??梢园阉醋鍪且粋€棧,用在存放Activity的棧,只有兩個動作,進棧和出棧,遵循先進后出的原則。
一、Activity的啟動模式有四種:
1. Standard
2. singleTop
3. singleTask
4. singleInstance
問:哪里設置Activity的啟動模式呢?
答:在Menifest.xml中設置Activity的屬性android:launchMode="singleTop"
問:這些啟動模式的設置決定了什么?或者作用是什么?
答:決定了他們在Task中的存在方式
二、四種模式的解釋
1. standard
默認的模式,每次都會新建,每個Task都可以有,且每個Task都可以有多個實例(每個Task都可以有,且可以有多個)
2. singleTop
當前實例如果在棧頂,就不新建實例,調用其OnNewIntent。 如不在棧頂,則新建實例 (每個Task都可以有,且可以有多個,在棧頂時可復用)
3. singleTask
新建一個Task,如果已經有其他的Task并且包含該實例,那就直接調用那個Task的實例。(只有一個Task中會有)
4. singleInstance
新建一個Task,且在該Task中只有它的唯一一個實例。 (只有一個Task會有,且該Task中只有它)
三、演示
實例一、
如上圖,創(chuàng)建三個Activity,每個Activity中都有一個Button,單擊后會跳到下一個Activity。
默認是standard模式,這時候看一下Task中的情況
會看到在Task A中有兩個Activity A,所以standard是每次都在初始化一個新的Activity
實例二、
為了證明singleTop模式,我們將Activity之間的跳轉方式改變一下,如下圖
先用一個Activity證明吧,這是一個Activity,點擊按鈕后跳到他本身。例子本身沒有什么實際作用,只是為證明singleTop
如果是模式standard模式,大家想一下,棧的情況會是怎樣的?
Task棧中情況如下
但如果是singleTop中,不管你按多少次button,棧中的情況只有一種,singleTop會判斷當前這個Activity是不是在Task的頂部,如果是在頂部就不會去new,如果不是,就會new,
如果把實例一中的每個Activity的launchMode都設置成singleTop,那么Task中的情況回合是實例一棧的情況是一模一樣的。
實例三、
關于singTask,singleTask模式和后面的singleInstance模式都是只創(chuàng)建一個實例的。
如果Activity A設置了singleTask,那個么棧中只有Activity A的一個實例,但是可以包含Actvity B ,Activty C 的實例,這與singleInstance是有區(qū)別的,singleInstance是一個棧中只有這一個Activity 的實例,只有一個。
將實例一中的Activity A 設置為singleTask模式,如下圖
則棧中的關系如下
我們看到在4步的時候發(fā)生了變化,棧中就只有Activity A了,此時如果按Back鍵時,就退出了程序。
由Activity C到Activity A進行跳轉時,Task中到發(fā)生了什么?
因為Activity A的家在模式為singTask,會先判斷Task A中是否有Activity A 的實例,如果有,就不用實例化了,如果沒有就要實例化。結果在Task A中有Activity的實例,但是在棧底,這時候怎么辦呢,會先將Activity C彈出棧,然后在彈出 Activity B彈出棧。如下圖
實例四、
Activity A 的launchMode為singInstance,會創(chuàng)建一個新的Task,然后在Task中只有一個實例就是Activity A.
棧中情況如下
這種模式下,要注意Activity的回退情況,就是按Back鍵的時候Activity的回退情況。此時如果按Back鍵,先返回到Activity A,然后是C ,B。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。