Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 用代碼理解Acticity啟動模式

用代碼理解Acticity啟動模式

編輯:關於Android編程

本章內容

Activity 四種啟動模式的理論知識 代碼理解

Activity 四種啟動模式的理論知識

standard

默認模式,可以不用寫配置。在這個模式下,都會默認創建一個新的實例。因此,在這種模式下,可以有多個相同的實例,也允許多個相同Activity疊加。

singleTop

當活動的啟動模式指定為 singleTop,在啟動活動時如果發現返回棧的棧頂已經是該活動,則認為可以直接使用它,不會再創建新的活動實例,如果不是在棧頂,那麼就會再次創建一個實例.

singleTask

啟動模式為singleTask的Activity的對象,在整個Activity棧中只會存在一個,並且如果再次啟動,Activity棧會清空該實例上面的所有Activity對象,感覺有點抽象,第二部分會用代碼清楚的表現出來的。

singleInstance

只有一個實例,並且這個實例獨立運行在一個task中,這個task只有這個實例,不允許有別的Activity存在,並且這會導致一些跳轉上的邏輯問題,這個得處理好才行。


代碼理解

代碼准備

AndroidManifest.xml

 
        
            
                

                
            
        
        
        
        
    

這裡沒有配置MainAcitivy的啟動模式,那麼它的啟動模式就是默認的 standard了。
接下來所有Activity 的畫面都是這種
這裡寫圖片描述
每個Button對應著各自字母開頭的Activity


先從簡單的跳轉、回退開始,每個按鈕點三下

連點M,MainActivity–standard

05-21 11:47:21.654 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onPause
05-21 11:47:21.664 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onCreate
05-21 11:47:21.674 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onstart
05-21 11:47:21.674 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onResume
05-21 11:47:22.054 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop
05-21 11:47:22.934 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onPause
05-21 11:47:22.944 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onCreate
05-21 11:47:22.954 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onstart
05-21 11:47:22.954 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onResume
05-21 11:47:23.334 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop
05-21 11:47:24.494 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onPause
05-21 11:47:24.494 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onCreate
05-21 11:47:24.514 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onstart
05-21 11:47:24.514 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onResume
05-21 11:47:24.884 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop

因為我的MainActivity是LAUNCHER,所以才會有開頭的 onpause,onstop,可以看到

05-21 11:47:21.664 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onCreate
05-21 11:47:21.674 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onstart
05-21 11:47:21.674 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onResume

這三個Log輸出了三次,就是開啟了3個MainActivity,Activity棧中已經存在了4個MainActivity,那麼必然的退出時候,onDestroy會被執行四次

05-21 11:50:18.894 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onPause
05-21 11:50:18.904 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onRestart
05-21 11:50:18.904 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onstart
05-21 11:50:18.904 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onResume
05-21 11:50:19.284 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop
05-21 11:50:19.284 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onDestroy
05-21 11:50:24.514 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onPause
05-21 11:50:24.524 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onRestart
05-21 11:50:24.524 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onstart
05-21 11:50:24.524 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onResume
05-21 11:50:24.904 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop
05-21 11:50:24.904 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onDestroy
05-21 11:50:26.074 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onPause
05-21 11:50:26.084 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onRestart
05-21 11:50:26.084 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onstart
05-21 11:50:26.084 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onResume
05-21 11:50:26.454 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop
05-21 11:50:26.454 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onDestroy
05-21 11:50:27.564 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onPause
05-21 11:50:27.974 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop
05-21 11:50:27.974 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onDestroy

連點B,BActivity–singleInstance

05-21 11:53:44.224 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onPause
05-21 11:53:44.284 18600-18600/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onCreate
05-21 11:53:44.294 18600-18600/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onstart
05-21 11:53:44.294 18600-18600/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onResume
05-21 11:53:44.604 18600-18600/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop
05-21 11:53:46.884 18600-18600/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onPause
05-21 11:53:46.884 18600-18600/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onResume
05-21 11:53:47.864 18600-18600/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onPause
05-21 11:53:47.864 18600-18600/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onResume

正如理論說的那樣,跳轉BActivity所產生的棧,只會存在一個B的實例,在log輸出中確實只輸出了一次

05-21 11:53:44.284 18600-18600/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onCreate
05-21 11:53:44.294 18600-18600/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onstart

之後的輸出就只有

05-21 11:53:47.864 18600-18600/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onPause
05-21 11:53:47.864 18600-18600/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onResume

之前說過,這個模式會導致跳轉邏輯有些異常,這次點擊的順序是A-C-B-M

05-21 12:09:43.374 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onPause
05-21 12:09:43.374 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onCreate
05-21 12:09:43.384 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onstart
05-21 12:09:43.384 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onResume
05-21 12:09:43.784 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop
05-21 12:09:49.394 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onPause
05-21 12:09:49.414 28588-28588/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onCreate
05-21 12:09:49.424 28588-28588/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onstart
05-21 12:09:49.424 28588-28588/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onResume
05-21 12:09:49.814 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onStop
05-21 12:09:51.384 28588-28588/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onPause
05-21 12:09:51.434 28588-28588/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onCreate
05-21 12:09:51.444 28588-28588/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onstart
05-21 12:09:51.444 28588-28588/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onResume
05-21 12:09:51.734 28588-28588/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onStop
05-21 12:09:55.584 28588-28588/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onPause
05-21 12:09:55.594 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onCreate
05-21 12:09:55.604 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onstart
05-21 12:09:55.604 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onResume
05-21 12:09:55.994 28588-28588/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onStop

按照正常的邏輯,返回的順序應該是M-C-B-A,但是實際上真正的順序是M-C-A-B:

05-21 12:13:05.944 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onPause
05-21 12:13:05.954 28588-28588/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onRestart
05-21 12:13:05.954 28588-28588/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onstart
05-21 12:13:05.954 28588-28588/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onResume
05-21 12:13:06.344 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop
05-21 12:13:06.354 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onDestroy
05-21 12:13:06.924 28588-28588/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onPause
05-21 12:13:06.934 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onRestart
05-21 12:13:06.934 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onstart
05-21 12:13:06.934 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onResume
05-21 12:13:07.314 28588-28588/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onStop
05-21 12:13:07.314 28588-28588/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onDestroy
05-21 12:13:08.644 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onPause
05-21 12:13:08.654 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onRestart
05-21 12:13:08.654 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onstart
05-21 12:13:08.654 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onResume
05-21 12:13:09.034 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onStop
05-21 12:13:09.034 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onDestroy
05-21 12:13:10.284 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onPause
05-21 12:13:10.294 28588-28588/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onRestart
05-21 12:13:10.294 28588-28588/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onstart
05-21 12:13:10.294 28588-28588/cjh.lauchmode D/tag-B--singleInstance: tag-B--singleInstance- onResume

最後看到的才是B,這個是因為在跳轉B之後,又跳轉了一次M:
singleInstance啟動了另一個棧,也就是說現在有兩個棧,第一個棧從上到下是:M-C-A。另一個棧就是B一個實例,最後一次跳M的操作,讓我們從B棧回到了第一個棧,那麼接下來不斷的返回,看到的也會是第一個棧中的Activity了,順序是 M-C-A,第一個棧清理完了,接下來才會看到B棧。

連點A, AActivity–singleTop,對於A這裡會做不一樣的操作,先點一下A,在點一下M,最後點兩下A

05-21 12:00:30.704 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onPause
05-21 12:00:30.714 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onCreate
05-21 12:00:30.724 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onstart
05-21 12:00:30.724 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onResume
05-21 12:00:31.104 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop
05-21 12:00:32.314 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onPause
05-21 12:00:32.324 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onCreate
05-21 12:00:32.334 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onstart
05-21 12:00:32.334 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onResume
05-21 12:00:32.704 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onStop
05-21 12:00:33.924 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onPause
05-21 12:00:33.934 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onCreate
05-21 12:00:33.944 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onstart
05-21 12:00:33.944 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onResume
05-21 12:00:34.334 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop
05-21 12:00:35.264 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onPause
05-21 12:00:35.264 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onResume

可以看到log中當第二次點擊A這個Button的時候,發現AActivity不再棧頂,那麼就會重新創建一次,第三次點擊發現在棧頂,就只會調用onResume這個方法了,最後的棧中從上到下的順序就是 A-M-A-M,所以退出的時候,整個log中onDestroy的方法只會被調用4次

05-21 12:04:54.604 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onPause
05-21 12:04:54.614 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onRestart
05-21 12:04:54.614 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onstart
05-21 12:04:54.614 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onResume
05-21 12:04:55.004 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onStop
05-21 12:04:55.004 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onDestroy
05-21 12:04:56.964 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onPause
05-21 12:04:56.974 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onRestart
05-21 12:04:56.974 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onstart
05-21 12:04:56.974 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onResume
05-21 12:04:57.354 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop
05-21 12:04:57.354 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onDestroy
05-21 12:04:58.294 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onPause
05-21 12:04:58.304 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onRestart
05-21 12:04:58.304 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onstart
05-21 12:04:58.304 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onResume
05-21 12:04:58.684 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onStop
05-21 12:04:58.684 28588-28588/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onDestroy
05-21 12:04:59.554 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onPause
05-21 12:04:59.984 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop
05-21 12:04:59.984 28588-28588/cjh.lauchmode D/tag-M--standard: tag-M--standard- onDestroy

連點C,CActivity–singleTask,singleTask其實是非常極端的一種模式,它會清空壓在它所在棧上面所有壓在的Activity實例,這裡我們不跳B,無論C怎麼強橫也不可能去影響到別的棧,那麼這次這麼跳:A-C-C-M-A-C

05-21 12:21:54.864 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onCreate
05-21 12:21:54.874 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onstart
05-21 12:21:54.874 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onResume
05-21 12:21:55.254 21834-21834/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop
05-21 12:21:56.884 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onPause
05-21 12:21:56.934 21834-21834/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onCreate
05-21 12:21:56.944 21834-21834/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onstart
05-21 12:21:56.944 21834-21834/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onResume
05-21 12:21:57.334 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onStop
05-21 12:21:58.624 21834-21834/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onPause
05-21 12:21:58.624 21834-21834/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onResume
05-21 12:22:00.634 21834-21834/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onPause
05-21 12:22:00.634 21834-21834/cjh.lauchmode D/tag-M--standard: tag-M--standard- onCreate
05-21 12:22:00.644 21834-21834/cjh.lauchmode D/tag-M--standard: tag-M--standard- onstart
05-21 12:22:00.644 21834-21834/cjh.lauchmode D/tag-M--standard: tag-M--standard- onResume
05-21 12:22:01.024 21834-21834/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onStop
05-21 12:22:03.374 21834-21834/cjh.lauchmode D/tag-M--standard: tag-M--standard- onPause
05-21 12:22:03.394 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onCreate
05-21 12:22:03.404 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onstart
05-21 12:22:03.404 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onResume
05-21 12:22:03.804 21834-21834/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop
05-21 12:22:08.194 21834-21834/cjh.lauchmode D/tag-M--standard: tag-M--standard- onDestroy
05-21 12:22:08.194 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onPause
05-21 12:22:08.214 21834-21834/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onRestart
05-21 12:22:08.214 21834-21834/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onstart
05-21 12:22:08.214 21834-21834/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onResume
05-21 12:22:08.584 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onStop
05-21 12:22:08.584 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onDestroy

從最後的log中可以看到,當我最後一次跳C的時候,棧中有一個A和M已經被銷毀了

05-21 12:22:03.804 21834-21834/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop
05-21 12:22:08.194 21834-21834/cjh.lauchmode D/tag-M--standard: tag-M--standard- onDestroy
05-21 12:22:08.194 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onPause
05-21 12:22:08.214 21834-21834/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onRestart
05-21 12:22:08.214 21834-21834/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onstart
05-21 12:22:08.214 21834-21834/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onResume
05-21 12:22:08.584 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onStop
05-21 12:22:08.584 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onDestroy

這裡被銷毀的A和M其實就是壓在C上的Acticity的實例,回退就更加直觀了

05-21 12:24:41.364 21834-21834/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onPause
05-21 12:24:41.374 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onRestart
05-21 12:24:41.374 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onstart
05-21 12:24:41.374 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onResume
05-21 12:24:41.754 21834-21834/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onStop
05-21 12:24:41.754 21834-21834/cjh.lauchmode D/tag-C--singleTask: tag-C--singleTask- onDestroy
05-21 12:24:42.274 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onPause
05-21 12:24:42.284 21834-21834/cjh.lauchmode D/tag-M--standard: tag-M--standard- onRestart
05-21 12:24:42.284 21834-21834/cjh.lauchmode D/tag-M--standard: tag-M--standard- onstart
05-21 12:24:42.284 21834-21834/cjh.lauchmode D/tag-M--standard: tag-M--standard- onResume
05-21 12:24:42.654 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onStop
05-21 12:24:42.654 21834-21834/cjh.lauchmode D/tag-A--singleTop: tag-A--singleTop- onDestroy
05-21 12:24:43.934 21834-21834/cjh.lauchmode D/tag-M--standard: tag-M--standard- onPause
05-21 12:24:44.384 21834-21834/cjh.lauchmode D/tag-M--standard: tag-M--standard- onStop
05-21 12:24:44.384 21834-21834/cjh.lauchmode D/tag-M--standard: tag-M--standard- onDestroy

可以看到,盡管我跳入是跳了5個Activity,但是最後退出卻只輸出了3次 onDestroy(),並且是在 C 銷毀之後輸出的,那麼顯然壓在C上的實例早就被銷毀了。

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved