詳細闡述有關Android屬性問題
Android屬性的內容包括:更容易的設計集成、擴充的部署選項、更為豐富多彩的登錄和個性化服務以及更好的數(shù)據(jù)訪問和同步,希望大家能夠從中得到相關自己想要的信息。
并調用startActivity().這時候,地圖組件可以顯示地圖,當用戶點擊“后退”按鈕,你的activity會重新顯示在屏幕上。對用戶來說,即使地圖程序是定義在另外一個程序中、在另外一個進程中運行,但是它看起來好像你的程序的一部分。
Android屬性通過將2個activities放在用一個任務中,使得用戶有這樣的體驗。這一系列的activities,安排在一個堆棧中。堆棧中的根activity是任務的開始,或者說是用戶選擇的應用程序的第一個activity。堆棧頂部的activity 是當前正在運行的activity— 目前正在吸引用戶注意的一個。
當一個activity啟動另外一個的時候,新的activity被壓棧,變?yōu)楫斍癮ctivity. 之前的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>節(jié)點控制的。
Intent的標志集包括:
- FLAG_ACTIVITY_NEW_TASK
- FLAG_ACTIVITY_CLEAR_TOP
- FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
- FLAG_ACTIVITY_SINGLE_TOP
典型的<activity> 的節(jié)點屬性如下:
- taskAffinity
- launchMode
- allowTaskReparenting
- clearTaskOnLaunch
- alwaysRetainTaskState
- finishOnTaskLaunch
本文進行詳細說明了這些標記和Android屬性的意義和互動。
【編輯推薦】