2011年12月19日 星期一

Android - activity : launchMode(2) - singleTop介紹

接下來請延用activity - android:launchMode(1)文章中的程式,並在AndroidManifest.xml中,把A2調整為
<activity android:name=".A2" android:label="@string/app_name" android:launchMode="singleTop"/>

然後進行activity的順序為A1->A2->A2->A3->A2,結果如下:


程式一開始執行的畫面





















由A1到A2後所產生的畫面





















請注意,當A2按下「Intent to A2」時
並沒有產生新的實體,還是待在原來的A2上




















由A2按下「Intent to A3」後的畫面




























由A3到A2時,產生一個A2的實體

因 為A2是設定為singleTop,所以當A2如果是在activity stack的最上層時,即時startActivity後,是不會產生新的實體的。但是在A3利用startActivity呼叫A2時,因為現在 activity stack最上層是A3而不是A2,因此會產生一個A2的實體。所以可以看到有2個A2的hashcode
com.testintent.A2@43e4a2a0
com.testintent.A2@43e5b138

現在開始由A2按下Back Key一直倒退回去可以發現順序為
A2 -> A3 -> A2 -> A1
注意到A3 -> A2 -> A1,其中A2只按一次就消失了。

沒有留言:

張貼留言