Android Activity啟動模式之singleTask實例詳解
本文實例分析了Android Activity啟動模式之singleTask。分享給大家供大家參考,具體如下:
前面的文章介紹了Android 活動Activity的啟動模式:standard 和singleTop 。本文繼續(xù)介紹Activity的下一個啟動模式:singleTask。
singleTask:當(dāng)設(shè)置活動的啟動模式為singleTask時,首先檢查返回棧中是否存在當(dāng)前活動,如果存在當(dāng)前活動的實例,則直接使用當(dāng)前實例,并把當(dāng)前活動之上的所有活動pop出棧,即當(dāng)前活動位于棧頂位置。
代碼實例如下:
(1)修改AndroidManifest.xml
修改活動MainActivity的啟動模式為singleTask,如下:
<activity
android:name=".MainActivity"
android:launchMode="singleTask"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
(2)修改MainActivity.java
為了測試效果,重寫onRestart方法:
@Override
protected void onRestart() {
super.onRestart();
Log.d("MainActivity", "onRestart");
}
(3)修改MyActivity1.java
為了測試效果,重寫onDestroy方法:
@Override
protected void onDestroy() {
super.onDestroy();
Log.d("MyActivity1", "onDestroy");
}
(3)重新發(fā)布,查看日志
發(fā)布程序,進(jìn)入MainActivity活動,點擊按鈕進(jìn)入MyActivity1活動,點擊按鈕回到主活動MainActivity,日志顯示如下:

從圖中可以看出,當(dāng)在MyActivity1中點擊按鈕時,返回棧中此時存在一個主活動MainActivity的實例,并且在MyActivity1的下面,當(dāng)點擊時,MyActivity1出棧,實例銷毀,調(diào)用onDestroy方法,而主活動則調(diào)用onRestart方法。
如果再次在主活動中點擊按鈕進(jìn)入MyActivity1活動,此時會創(chuàng)建MyActivity1實例,再次返回,見日志如下:

這正是Activity啟動模式singleTask的特性。
更多關(guān)于Android Activity相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android編程之a(chǎn)ctivity操作技巧總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
相關(guān)文章
Android ProgressBar直線進(jìn)度條的實例代碼
本文通過實例代碼給大家介紹了android progressbar直線進(jìn)度條的實現(xiàn)方法,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2017-06-06
在Android app中實現(xiàn)九(n)宮格圖片連續(xù)滑動效果
這篇文章主要介紹了在Android app中實現(xiàn)九(n)宮格圖片連續(xù)滑動效果的方法,作者舉了鳳凰新聞應(yīng)用的例子,同理功能圖標(biāo)也可以利用這樣的滑動效果,需要的朋友可以參考下2016-02-02
Android點擊Button實現(xiàn)功能的幾種方法總結(jié)
當(dāng)Button有多個或者Button的使用次數(shù)很多時,我們需要采用綁定監(jiān)聽器的做法,其實,綁定監(jiān)聽器也有幾種方法,不過,我在這里就不一一列舉了,畢竟那些方法在實際的應(yīng)用中也不常見2013-10-10
Android、iOS和Windows Phone中的推送技術(shù)詳解
這篇文章主要介紹了Android、iOS和Windows Phone中的推送技術(shù)詳解,推送技術(shù)的實現(xiàn)通常會使用服務(wù)端向客戶端推送消息的方式,也就是說客戶端通過用戶名、Key等ID注冊到服務(wù)端后,在服務(wù)端就可以將消息向所有活動的客戶端發(fā)送,需要的朋友可以參考下2015-01-01

