真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

Activity的LaunchMode-創(chuàng)新互聯(lián)

什么是Task

平桂網站建設公司創(chuàng)新互聯(lián),平桂網站設計制作,有大型網站制作公司豐富經驗。已為平桂成百上千家提供企業(yè)網站建設服務。企業(yè)網站搭建\成都外貿網站建設公司要多少錢,請找那個售后服務好的平桂做網站的公司定做!

先講一下android中的Task??梢园阉醋鍪且粋€棧,用在存放Activity的棧,只有兩個動作,進棧和出棧,遵循先進后出的原則。

Activity的LaunchMode

一、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中只有它)  

三、演示

Activity的LaunchMode

實例一、

如上圖,創(chuàng)建三個Activity,每個Activity中都有一個Button,單擊后會跳到下一個Activity

默認是standard模式,這時候看一下Task中的情況

Activity的LaunchMode

Activity的LaunchMode

會看到在Task A中有兩個Activity A,所以standard是每次都在初始化一個新的Activity

實例二、

 為了證明singleTop模式,我們將Activity之間的跳轉方式改變一下,如下圖

先用一個Activity證明吧,這是一個Activity,點擊按鈕后跳到他本身。例子本身沒有什么實際作用,只是為證明singleTop

Activity的LaunchMode

如果是模式standard模式,大家想一下,棧的情況會是怎樣的?

Task棧中情況如下

Activity的LaunchMode

但如果是singleTop中,不管你按多少次button,棧中的情況只有一種,singleTop會判斷當前這個Activity是不是在Task的頂部,如果是在頂部就不會去new,如果不是,就會new,

Activity的LaunchMode

如果把實例一中的每個ActivitylaunchMode都設置成singleTop,那么Task中的情況回合是實例一棧的情況是一模一樣的。

實例三、

關于singTask,singleTask模式和后面的singleInstance模式都是只創(chuàng)建一個實例的。

如果Activity A設置了singleTask,那個么棧中只有Activity A的一個實例,但是可以包含Actvity B ,Activty C 的實例,這與singleInstance是有區(qū)別的,singleInstance是一個棧中只有這一個Activity 的實例,只有一個。

將實例一中的Activity A 設置為singleTask模式,如下圖

Activity的LaunchMode

則棧中的關系如下

Activity的LaunchMode

我們看到在4步的時候發(fā)生了變化,棧中就只有Activity A了,此時如果按Back鍵時,就退出了程序。

Activity CActivity A進行跳轉時,Task中到發(fā)生了什么?

因為Activity A的家在模式為singTask會先判斷Task A中是否有Activity A 的實例,如果有,就不用實例化了,如果沒有就要實例化。結果在Task  A中有Activity的實例,但是在棧底,這時候怎么辦呢,會先將Activity C彈出棧,然后在彈出 Activity B彈出棧。如下圖

Activity的LaunchMode

實例四、

Activity的LaunchMode

Activity A launchModesingInstance,會創(chuàng)建一個新的Task,然后在Task中只有一個實例就是Activity A.

棧中情況如下

Activity的LaunchMode

這種模式下,要注意Activity的回退情況,就是按Back鍵的時候Activity的回退情況。此時如果按Back鍵,先返回到Activity A,然后是B。

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


網站名稱:Activity的LaunchMode-創(chuàng)新互聯(lián)
新聞來源:http://weahome.cn/article/dsscep.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部