關(guān)于android Activity的幾種啟動方式

activity有4種不同的啟動方式,并且啟動效果也各不一樣,好記性不如爛筆頭,寫下來加強(qiáng)印象吧!

  • Standard :這是默認(rèn)的啟動方式,我們在manifest xml當(dāng)中如果沒有設(shè)置的啟動方式的話默認(rèn)就是standard的方式來啟動activity的,standard方式在你啟動某個activity時,系統(tǒng)不會管你這個實(shí)例是否存在于棧當(dāng)中,都會創(chuàng)建一個新的實(shí)例。
  • SingleTop:如果啟動activity時發(fā)現(xiàn)它當(dāng)前已經(jīng)在棧頂則不會重新創(chuàng)建一個實(shí)例如果,你啟動的那個activity不再棧頂?shù)脑捑蜁匦聞?chuàng)建一個activity實(shí)例。
  • SingleTask:當(dāng)你的activity設(shè)置為SingleTask時,每次啟動你的額activity的時候 就會去棧里面是否存在這個activity的實(shí)例,如果存在則直接使用這個實(shí)例,并把這個activity之上的所有其他的activity統(tǒng)統(tǒng)出棧,如果棧里面沒有這個activity的實(shí)例的話就創(chuàng)建一個該activity的實(shí)例。
  • singleInstance:當(dāng)activity設(shè)置為singleInstance時,這個activity會啟動一個單獨(dú)的返回棧來管理這個活動。這個做到的意義在哪里呢?這個場景 我們的activity在被其他應(yīng)用調(diào)用時,如果其他的應(yīng)用在我們的被調(diào)用的activity上面點(diǎn)擊back,這個時候應(yīng)該是返回到他那個應(yīng)用的而不是我們activity退棧,所以使用singleInstance模式就可以解決這個問題,在這種模式下會有一個單獨(dú)的返回棧來管理這個活動,不管是哪個應(yīng)用程序來訪問這個活動,都共用的同一個返回棧,也就解決了共享活動實(shí)例的問題。
    看圖:


  • 比如,你在自己應(yīng)用圖片列表(也就是返回棧A的FirstActivity) 跳轉(zhuǎn)到了 美圖秀秀的activity(返回棧B SecondActivity)里面,編輯完之后 你點(diǎn)擊發(fā)送,跳轉(zhuǎn)到了你自己的應(yīng)用發(fā)送的界面(ThirdActivity),這個時候你在發(fā)送圖片的界面點(diǎn)擊返回應(yīng)該是返回你自己的activity而不是美圖秀秀的activity當(dāng)中。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容