成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android應用程序組件Activity的"singleTask"(1)

移動開發 Android
在Android應用程序中,可以配置Activity以四種方式來啟動,其中最令人迷惑的就是"singleTask"這種方式了,官方文檔稱以這種方式啟動的Activity總是屬于一個任務的根Activity。果真如此嗎?本文將為你解開Activity的"singleTask"之謎。

在Android應用程序中,可以配置Activity以四種方式來啟動,其中最令人迷惑的就是"singleTask"這種方式了,官方文檔稱以這種方式啟動的Activity總是屬于一個任務的根Activity。果真如此嗎?本文將為你解開Activity的"singleTask"之謎。

在解開這個謎之前,我們先來簡單了解一下在Android應用程序中,任務(Task)是個什么樣的概念。我們知道,Activity是 Android應用程序的基礎組件之一,在應用程序運行時,每一個Activity代表一個用戶操作。用戶為了完成某個功能而執行的一系列操作就形成了一 個Activity序列,這個序列在Android應用程序中就稱之為任務,它是從用戶體驗的角度出發,把一組相關的Activity組織在一起而抽象出 來的概念。

對初學者來說,在開發Android應用程序時,對任務的概念可能不是那么的直觀,一般我們只關注如何實現應用程序中的每一個Activity。事實 上,Android系統中的任務更多的是體現是應用程序運行的時候,因此,它相對于Activity來說是動態存在的,這就是為什么我們在開發時對任務這 個概念不是那么直觀的原因。不過,我們在開發Android應用程序時,還是可以配置Activity的任務屬性的,即告訴系統,它是要在新的任務中啟動 呢,還是在已有的任務中啟動,亦或是其它的Activity能不能與它共享同一個任務,具體配置請參考官方文檔:

http://developer.android.com/gui ... and-back-stack.html

它是這樣介紹以"singleTask"方式啟動的Activity的:

The system creates a new task and instantiates the activity at the root of the new task. However, if an instance of the activity already exists in a separate task, the system routes the intent to the existing instance through a call to its onNewIntent() method, rather than creating a new instance. Only one instance of the activity can exist at a time.

它明確說明,以"singleTask"方式啟動的Activity,全局只有***個實例存在,因此,當我們***次啟動這個Activity時,系統 便會創建一個新的任務,并且初始化一個這樣的Activity的實例,放在新任務的底部,如果下次再啟動這個Activity時,系統發現已經存在這樣的 Activity實例,就會調用這個Activity實例的onNewIntent成員函數,從而把它激活起來。從這句話就可以推斷出, 以"singleTask"方式啟動的Activity總是屬于一個任務的根Activity。

但是文檔接著舉例子說明,當用戶按下鍵盤上的Back鍵時,如果此時在前臺中運行的任務堆棧頂端是一個"singleTask"的Activity,系統會回到當前任務的下一個Activity中去,而不是回到前一個Activity中去,如下圖所示:

真是坑爹啊!有木有!前面剛說"singleTask"會在新的任務中運行,并且位于任務堆棧的底部,這里在Task B中,一個赤裸裸的帶著"singleTask"標簽的箭頭無情地指向Task B堆棧頂端的Activity Y,剛轉身就翻臉不認人了呢!

獅屎勝于熊便,我們來做一個實驗吧,看看到底在啟動這個"singleTask"的Activity的時候,它是位于新任務堆棧的底部呢,還是在已有任務的頂部。

責任編輯:閆佳明 來源: bbs.9ria
相關推薦

2014-05-27 14:33:37

AndroidActivitysingleTask

2014-05-27 14:59:24

AndroidActivitysingleTask

2014-05-27 15:04:15

AndroidActivitysingleTask

2014-05-27 15:09:13

AndroidActivitysingleTask

2014-05-27 14:12:49

AndroidActivitysingleTask

2014-05-27 14:16:08

AndroidActivitysingleTask

2014-05-27 14:28:25

AndroidActivitysingleTask

2014-05-27 14:44:26

AndroidActivitysingleTask

2014-05-27 15:07:07

AndroidActivitysingleTask

2014-05-27 15:11:20

AndroidActivitysingleTask

2014-05-27 15:17:46

AndroidActivitysingleTask

2010-02-06 15:26:11

Android應用程序

2009-08-14 17:08:00

Android應用程序

2013-01-17 15:51:42

Android開發應用程序組件

2010-11-11 14:38:37

2010-03-03 16:45:46

Android應用程序

2011-05-24 16:09:57

Androi

2012-04-25 22:56:10

Android

2010-01-25 13:29:53

Android本地應用

2022-09-27 15:16:42

開發Android應用程序
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品一 | 国产激情一区二区三区 | 91视频官网 | 91精品久久| 国产亚洲精品美女久久久久久久久久 | 国产免费拔擦拔擦8x高清 | 成人av一区二区在线观看 | 69性欧美高清影院 | 亚洲一区二区在线电影 | 成人午夜免费福利视频 | 一区二区三区视频在线 | 国产一区久久 | 日韩第一区 | 久久成人18免费网站 | 在线观看一区 | 国产精品一区二区无线 | 欧美日韩一卡 | 99视频入口 | 激情 亚洲 | 在线欧美视频 | 久久精品国产久精国产 | 日本一区二区三区免费观看 | 国产在线观看福利 | 国产一区免费 | 国产精品日日摸夜夜添夜夜av | 日韩欧美一区二区三区 | 国产精品国产三级国产播12软件 | 天天爽夜夜爽精品视频婷婷 | 一级黄色片免费 | 黄色大全免费看 | 羞羞色视频| 国产区视频在线观看 | 精品福利视频一区二区三区 | 亚洲午夜视频 | 亚洲国产一区二区三区在线观看 | 中文字幕亚洲区一区二 | 欧美亚洲国产一区二区三区 | 性大毛片视频 | 日韩欧美一区二区三区 | 日本精品久久 | 精品久久久久久久久久久 |