Android屬性的內容包括:更容易的設計整合、擴充的部署選項、更為豐富多彩的登入和個人化服務以及更好的資料訪問和同步,希望大家能夠從中得到相關自己想要的資訊。
並調用startActivity().這時候,地圖組件可以顯示地圖,當使用者點擊“後退”按鈕,你的activity會重新顯示在螢幕上。對使用者來說,即使地圖程式是定義在另外一個程式中、在另外一個進程中運行,但是它看起來好像你的程式的一部分。
Android屬性通過將2個activities放在用一個任務中,使得使用者有這樣的體驗。這一系列的activities,安排在一個堆棧中。堆棧中的根activity是任務的開始,或者說是使用者選擇的應用程式的第一個activity。堆棧頂部的activity 是當前正在啟動並執行activity— 目前正在吸引使用者注意的一個。
當一個activity啟動另外一個的時候,新的activity被壓棧,變為當前activity. 之前的activity 還在任務中。當使用者點擊後退BACK)鍵,當前的acitivity被彈出棧,之前的activity成為正在啟動並執行。如果堆棧中有多個同樣的activity的執行個體,如有多個地圖查看器如程式設定了多個開啟地圖查看器的入口),那麼堆棧不可以重新排序,只能彈出和壓入。
任務是activities的堆棧,而非裝箱單中的一個類,因此不能離開activity單獨設定一個堆棧的值。例如,下面一章將要談到‘任務的吸引力’,這個值就是設定在任務的根activity裡面的。
任務中的所有activities作為一個整體移動。整個任務可以放在前台foreground)或者後台background)運行。想象一下,例如,有個任務有4個activities,使用者點擊“HOME”鍵,回到程式開始的地方,選擇了一個新的程式其實是一個新的任務)。
當前的任務移到後台運行,新任務的根activity開始顯示。過了一會,使用者又回到HOME介面,選擇了剛才的程式剛才的任務)。則這個含有4個activities的任務回到前台運行。當使用者點擊BACK按鈕,螢幕不會顯示使用者剛剛離開時候的activity,而是在堆棧頂部的activity被彈出,顯示前一個activity。
預設的情況下,上面這些描述是沒有問題的。當然,也有很多辦法來改變以下:任務和activity的關係、任務中一個activity的動作。這些是被Intent對象啟動此acivity的)的標誌集flag set)和activity在裝箱單中的<activity>節點控制的。
Intent的標誌集包括:
- FLAG_ACTIVITY_NEW_TASK
- FLAG_ACTIVITY_CLEAR_TOP
- FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
- FLAG_ACTIVITY_SINGLE_TOP
典型的<activity> 的節點屬性如下:
- taskAffinity
- launchMode
- allowTaskReparenting
- clearTaskOnLaunch
- alwaysRetainTaskState
- finishOnTaskLaunch
本文進行詳細說明了這些標記和Android屬性的意義和互動。