android中四種活動啟動模式的區別
阿新 • • 發佈:2019-01-14
首先說一下啟動模式在哪定義
在定義活動的時候加上android:launchMode="xxx"
四種啟動模式分別是standard,singleTop,singleTask和singleInstance
1.standard
standard是活動的預設啟動方式,沒啟動一個新的活動,他就會在返回棧中入棧,並處於棧頂,這種方式並不會考慮棧中是否已經存在相同的活動,它會直接建立一個新的活動例項
2.singleTop
這種方式會檢查棧頂是否存在相同的活動例項,如果存在,那麼他並不會建立新的活動例項,而是使用已存在棧頂的活動
3.singleTask
singleTask是singleTop的改進,singleTop只是檢查棧頂是否存在相同活動,而singleTask是檢查整個活動棧是否存在該活動,如果存在,就直接將在該活動上面的活動出棧,進而使用該活動,如果沒有就建立一個
4.singleinstance
為什麼要有這個模式,你可以想一想,如果有別的程式要用到該活動,想要共享這個活動,前面三種方式是實現不了的,因為每一個程式都會有自己的返回棧,同一個活動在不同的返回棧中入棧肯定建立了新的例項,而singleinstance模式會有有一個單獨的返回棧,不管哪個程式來訪問,都共用一個返回棧,也就解決了
總結起來就是按照上面的排序,第一個是最不推薦的,儘量使用第三個,如果活動是可以共享給別的程式的,就使用第四個
好啦,如果覺得我寫的有什麼錯誤,歡迎指正