singletask應(yīng)用場(chǎng)景 singleTop和singleTask有什么區(qū)別?
singleTop和singleTask有什么區(qū)別?singleTop要求如果創(chuàng)建intent的時(shí)候棧頂已經(jīng)有要?jiǎng)?chuàng)建的Activity的實(shí)例,則將intent發(fā)送給該實(shí)例,而不發(fā)送給新的實(shí)例。(注意是
singleTop和singleTask有什么區(qū)別?
singleTop要求如果創(chuàng)建intent的時(shí)候棧頂已經(jīng)有要?jiǎng)?chuàng)建的Activity的實(shí)例,則將intent發(fā)送給該實(shí)例,而不發(fā)送給新的實(shí)例。(注意是棧頂,不在棧頂照樣創(chuàng)建新實(shí)例?。?/p>
singleTask模式:當(dāng)intent到來(lái),需要?jiǎng)?chuàng)建singleTask模式Activity的時(shí)候,系統(tǒng)會(huì)檢查棧里面是否已經(jīng)有該Activity的實(shí)例。如果有直接將intent發(fā)送給它。
singleTop和singleTask有什么區(qū)別呢?
singleTop 的Activity和standard的幾乎一樣,把singleTop和standard歸為一類啟動(dòng)模式,這種模式不會(huì)引起任務(wù)棧的變更singleTop和standard唯一的區(qū)別就是,singleTop的Activity,當(dāng)處于棧頂時(shí),再Start一個(gè)該Activity,不會(huì)創(chuàng)建新的Activity而是復(fù)用它,例如:A為standard,B為singleTop,/ABAB表示任務(wù)棧,start:A表示啟動(dòng)Activity,初始棧為/A/A start:B/AB start:B/AB start:A/ABA start:A/ABAA start:B/ABAAB start:B/ABAAB這樣就明白了吧。而singleTask,和singleInstance可以歸為另一類啟動(dòng)模式,這種模式必然引起任務(wù)棧變更singleTask和singleInstance的區(qū)別就是,singleInstance所在的任務(wù)棧,只能有它這一個(gè)Acitivity。設(shè)A為standard,B為singleTask,C為standard/A start:B/B start:C/BC start:A/BCA start:B/B以上。