一個應用 可以有多個application

來源:互聯網
上載者:User

標籤:角度   idm   互動   data-   class   進入   http   返回   sina   

韓夢飛沙 yue31313 韓亞飛 han_meng_fei_sha [email protected]

 

 

一個應用裡面怎樣才能有2個application 一個AndroidManifest.xml中可以定義多個application

 

一個應用裡面可不可以有2個application 

 

===========

什麼是Activity Stack?

  如上所訴,Activity承擔了大量的顯示和互動工作,從某種角度上將,我們看見的應用程式就是許多個Activity的組合。為了讓這許多 Activity協同工作而不至於產生混亂,Android平台設計了一種堆棧機制用於管理Activity,其遵循先進後出的原則,系統總是顯示位於棧 頂的Activity,從邏輯上將,位於棧頂的Activity也就是最後開啟的Activity,這也是符合邏輯的。

  在操作應用程式時,每次啟動新的Activity,都會將此壓入Activity Stack,當使用者執行返回操作時,移除Activity Stack頂上的Activity,這樣就實現了返回上一個Activty的功能。直到使用者一直返回到Home Screen,這時候可以理解為移除了Activity Stack所有的Activity,這個Activity Stack不再存在,應用程式也結束了運行。

什麼是Task?

  Task是指將相關的Activity組合到一起,以Activity Stack的方式進行管理。從使用者體驗上講,一個“應用程式”就是一個Task,但是從根本上講,一個Task是可以有一個或多個Android Application組成的。例如:你想在傳送簡訊時,拍一張照並作為多媒體訊息發出去,這時你首先停留在簡訊應用程式的的Acitivity上,然後跳轉到 Camera應用程式的Activity上,當完成拍照功能後,再返回到簡訊應用程式的Activity。這實際上是兩個Android Application協同合作後完成的工作,但為了更好的使用者體驗,Android平台加入了Task這麼一種機制,讓使用者沒有感覺到應用的中斷,讓用 戶感覺在一“應用程式”裡就完成了想完成的工作。

======

什麼是 Activity Stack?
    操作應用程式時,有時需要調用多個Activities來完成需求,例如:發送郵件程式,首先是進入郵件主介面,然後啟動一個新的Activity用於填寫新郵件內容,同時可以調出連絡人清單用於插入收件者資訊等等。在這個操作過程中 Android平台有一個專門用於管理Activities堆棧的機制,其可以方便的線性記錄Activities執行個體,當完成某個操作時,可以通過導航功能返回之前的Activity(通過按操作台的“Back”按鈕)。
    每次啟動新的Activity都將被添加到Activity Stack。使用者可以方便的返回上一個Activity直到Home Screen,到達Home Screen後,將無法再繼續查看堆棧記錄(俗話說:到頭了)。如果當前Task被中止(Interrupting the task),返回到系統主介面後啟動了其它操作,當希望返回到前一個Task繼續執行時,只需要再次通過主介面的Application launcher或者捷徑啟動這個Task的Root Activity便可返回其中止時的狀態繼續執行。
    相對於Views、Windows、Menus和Dialogs而言,Activity是唯一可被記錄在History stack中的資料,所以當你所設計的應用程式需要使用者由A介面進入到次一級介面B,當完成操作後需要再次返回A,那麼必須考慮將A看作為 Activity,否則將無法從曆史堆棧中返回。
    什麼是Task
    當我們需要一個Activity可以啟動另一個Activity,可能另外一個Activity是定義在不同應用程式中的Activity。
    例如,假設你想在你的應用中讓使用者顯示一些地方的街景。而這裡已經有一個Activity可以做到這一點,因此,你的Activity所需要做的只是在Intent對象中添加必要的資訊,並傳遞給startActivity()。地圖瀏覽將會顯示你的地圖。當使用者按下BACK鍵,你的Activity會再次出現在螢幕上。
    對於使用者來說,看起來好像是地圖瀏覽與你的Activity一樣,屬於相同的應用程式,即便是它定義在其它的應用程式裡,並運行在那個應用程式的進程裡。
    Android通過將這兩個Activity儲存在同一個Task裡來體現這一使用者體驗。簡單來說,一個Task就是使用者體驗上的一個“應用”。
    它將相關的Activity組合在一起,以stack的方式管理(就是前面提到的Activity Stack),這就是Task。
    在Android平台上可以將task簡單的理解為幽多個Activity共同協作完成某項應用,而不管Activity具體屬於哪個Application,

Task 有啥用?
    我們用過Android的手機就會知道有下面的情境:
    假設我們首先在用IReader在看書,從選書到具體書的閱讀介面,這是有好幾個Activity。我們每一個點擊的Activity都被放在閱讀這個Task對應的Activity Stack中了,這可以放我們通過回退鍵返回每一個前面的Activity。
    我們在閱讀到一半時,想看看Sina微博,按Home鍵離開了IReader。
    在Sina微博介面也是有多個Activity,我們一步到閱讀介面。這時候我們每一個點擊的Activity都被放在Sina微博這個Task對應的Activity Stack中了,這可以放我們通過回退鍵返回每一個前面的Activity。
    我們這時候再回到IReader讀書介面,原先的狀態還是保留的。
    顯然每一個Task有自己的 Activity Stack。
    Task就是這樣為了方便人們使用手機而設定的,就像前面提到的情境Task可以跨Application。
    下面這個圖從另外一個角度描述了Application Task Activities的關係

 

 

 

 Task通過Application launcher、Home screen的捷徑或者 由 “Recent Tasks”(長時間按住Home鍵)最近使用過的Task記錄中啟動。
    當從一個Activity中啟動另外一個Activity時,Back鍵將作用於返回前一個Activity,與此同時 新開啟的Activity將被添加到Activity Stack中。

=========

一個應用 可以有多個application

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.