activity的lanuchmode

黃寶康發表於2020-12-14

在android裡,有4種activity的啟動模式,分別為:

standard: 標準模式,一呼叫startActivity()方法就會產生一個新的例項。
singleTop: 如果已經有一個例項位於Activity棧的頂部時,就不產生新的例項,而只是呼叫Activity中的newInstance()方法。如果不位於棧頂,會產生一個新的例項。
singleTask: 會在一個新的task中產生這個例項,以後每次呼叫都會使用這個,不會去產生新的例項了。
singleInstance: 這個跟singleTask基本上是一樣,只有一個區別:在這個模式下的Activity例項所處的task中,只能有這個activity例項,不能有其他的例項

在這裡插入圖片描述
stand模式,舉例,A和B和C三個Activity直接呼叫,當前狀態為A-B-C(棧頂)
當C再次呼叫A的時候,變為A-B-C-A,因為該模式每次都產生一個新的例項,此時需要後退4步才能返回到桌面。

singleTop模式,舉例,C為singleTop,A和B為預設的stand模式,當前狀態為A-B-C(棧頂),如果C再次呼叫C的時候,此時不會新建一個例項,還是複用之前

相關文章