今天練習了一下啟動模式:
對其理解又深了一步,繼續(xù)加油!
首先Activity Launch Mode有四種:
standard:默認(棧里可有多個相同的實例,要多少有多少)
singleTop:棧頂(棧里可有多個相同的實例,但若是棧里的頂部,再打開不會生成新的,只打開棧頂?shù)哪莻€)
singleTask:獨立任務(全局單一實例,棧內(nèi)唯一,但可以和standard和singleTop共享棧,即使Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)也會跳到已經(jīng)創(chuàng)建好的那個Activity)
singleInstance:獨立棧實例(全局單一實例,一個App內(nèi)只允許存在一個,且獨享一個棧)
我們可以在清單文件(AndroidManifest.xml)中修改Activity的啟動模式,方法如下
<activity
android:name=".B_SingleTopActivity"
android:launchMode="singleTop">
</activity>
下面簡單講解下:
首先要了解Activity棧:

a1.png
1.Standard模式

a2.png
如果我們的Activity全都是默認的Standard,點擊跳轉(zhuǎn)一個Activity(如果不finish()這個Activity)棧里面就多一個Activity,當用戶按返回想退出,那就得一層一層的退
2.SingleTop棧頂模式

a3.png
3.SingleTask

a4.png
4.SingleInstance

a5.png
最后
代碼已經(jīng)分享到GitHub,需要的朋友可下載運行看看,可以看log,可以點擊顯示到TextView。

demo.gif