Android Activity的4種啟動模式

2021-07-06 08:01:41 字數 947 閱讀 3906

相信大家都非常熟悉activity的啟動模式了,不同的人也有不同的理解,特別是面試的時候也會被經常拿來問,今天特意整理了下,以留作紀念.

該模式也即是預設的啟動模式,如果被啟動的activity的啟動模式是standard的話,每次啟動都會在任務棧中建立新的例項,即建立新的activity,例如activity a 啟動activity a,那麼任務棧就會存在2個activity a,當按下返回鍵的時候會依次退出任務棧.

該模式很好理解,可謂見名知意,既然是棧頂啟動模式,那麼啟動的話肯定和棧頂有關,即如果啟動的目標activity是singletop模式的話,那麼首先會判斷該activity是否處於任務棧的棧頂,如果處於的話,就不會建立新的例項,直接開啟處於任務棧的activity,否則的話就會建立新的例項.例如任務棧中有activity a和activity b,其中activity a處於棧頂且是棧頂啟動模式,那麼在activity a中再開啟activity a本身,是不會再建立新的activity a的;相反,如果activity b處於棧頂,那麼在activity b啟動activity a就會重新建立activity a.

該模式也很好理解,所謂單任務棧的意思就是說乙個任務棧裡面只能存放該例項一次.即如果要開啟的目標activity是單任務棧模式的,那麼無論改目標activity處於任務棧的什麼位置,它都會將處於它之上的所有activity統統彈出任務棧來開啟它本身,而不會重新建立新的activity;例如任務棧中有activity a,b,c,d,(a處於棧頂,d處於棧低),如果d是單任務棧啟動模式,那麼在a中開啟d的效果就是d被開啟了,同時處於d之上的a,b,c都會彈出任務棧,當在d中按下返回鍵的時候,就會直接回到桌面.

單例項模式比較特殊,它和其他3種啟動模式的最大區別就是開啟它,它會建立乙個新的任務棧來存放它的例項.其它3種都是在同乙個任務棧中存在的.還有乙個特點就是,單例項的activity是單獨霸佔乙個任務棧的,即該任務棧中只有乙個activity例項.

android activity啟動模式

1.標準模式 standrad 沒啟動乙個activity,都會建立乙個activity例項,放入回退棧的內部 2.單頂模式 singletop 當啟動launchmode是 singletop的時候,系統會先判斷棧頂是不是要啟動的那個activity例項,如果是,則不會建立新的例項,直接讓棧頂直接...

Android Activity啟動模式

在androidmanifest.xml中配置 android name mainactivity android launchmode standard 有以下四種 standard 預設模式,每次通過intent啟動activity時都會建立乙個新的activity例項,並放入任務棧中。sing...

android Activity切換動畫

今天準備比賽的時候 遇到了這個問題。查了些資料總結了下。主要是通過 android theme 標籤來實現 android theme style 那麼就需要自己寫style風格檔案 如下 這裡之所以寫成2style個是為了解耦然後自己寫下anim anim enter anim anim exit...