詳細(xì)闡述有關(guān)Android屬性問題
Android屬性的內(nèi)容包括:更容易的設(shè)計(jì)集成、擴(kuò)充的部署選項(xiàng)、更為豐富多彩的登錄和個(gè)性化服務(wù)以及更好的數(shù)據(jù)訪問和同步,希望大家能夠從中得到相關(guān)自己想要的信息。
并調(diào)用startActivity().這時(shí)候,地圖組件可以顯示地圖,當(dāng)用戶點(diǎn)擊“后退”按鈕,你的activity會(huì)重新顯示在屏幕上。對(duì)用戶來說,即使地圖程序是定義在另外一個(gè)程序中、在另外一個(gè)進(jìn)程中運(yùn)行,但是它看起來好像你的程序的一部分。
Android屬性通過將2個(gè)activities放在用一個(gè)任務(wù)中,使得用戶有這樣的體驗(yàn)。這一系列的activities,安排在一個(gè)堆棧中。堆棧中的根activity是任務(wù)的開始,或者說是用戶選擇的應(yīng)用程序的第一個(gè)activity。堆棧頂部的activity 是當(dāng)前正在運(yùn)行的activity— 目前正在吸引用戶注意的一個(gè)。
當(dāng)一個(gè)activity啟動(dòng)另外一個(gè)的時(shí)候,新的activity被壓棧,變?yōu)楫?dāng)前activity. 之前的activity 還在任務(wù)中。當(dāng)用戶點(diǎn)擊后退(BACK)鍵,當(dāng)前的acitivity被彈出棧,之前的activity成為正在運(yùn)行的。如果堆棧中有多個(gè)同樣的activity的實(shí)例,如有多個(gè)地圖查看器(如程序設(shè)定了多個(gè)打開地圖查看器的入口),那么堆棧不可以重新排序,只能彈出和壓入。
任務(wù)是activities的堆棧,而非裝箱單中的一個(gè)類,因此不能離開activity單獨(dú)設(shè)定一個(gè)堆棧的值。例如,下面一章將要談到‘任務(wù)的吸引力’,這個(gè)值就是設(shè)定在任務(wù)的根activity里面的。
任務(wù)中的所有activities作為一個(gè)整體移動(dòng)。整個(gè)任務(wù)可以放在前臺(tái)(foreground)或者后臺(tái)(background)運(yùn)行。想象一下,例如,有個(gè)任務(wù)有4個(gè)activities,用戶點(diǎn)擊“HOME”鍵,回到程序開始的地方,選擇了一個(gè)新的程序(其實(shí)是一個(gè)新的任務(wù))。
當(dāng)前的任務(wù)移到后臺(tái)運(yùn)行,新任務(wù)的根activity開始顯示。過了一會(huì),用戶又回到HOME界面,選擇了剛才的程序(剛才的任務(wù))。則這個(gè)含有4個(gè)activities的任務(wù)回到前臺(tái)運(yùn)行。當(dāng)用戶點(diǎn)擊BACK按鈕,屏幕不會(huì)顯示用戶剛剛離開時(shí)候的activity,而是在堆棧頂部的activity被彈出,顯示前一個(gè)activity。
默認(rèn)的情況下,上面這些描述是沒有問題的。當(dāng)然,也有很多辦法來改變以下:任務(wù)和activity的關(guān)系、任務(wù)中一個(gè)activity的動(dòng)作。這些是被Intent對(duì)象(啟動(dòng)此acivity的)的標(biāo)志集(flag set)和activity在裝箱單中的<activity>節(jié)點(diǎn)控制的。
Intent的標(biāo)志集包括:
- FLAG_ACTIVITY_NEW_TASK
- FLAG_ACTIVITY_CLEAR_TOP
- FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
- FLAG_ACTIVITY_SINGLE_TOP
典型的<activity> 的節(jié)點(diǎn)屬性如下:
- taskAffinity
- launchMode
- allowTaskReparenting
- clearTaskOnLaunch
- alwaysRetainTaskState
- finishOnTaskLaunch
本文進(jìn)行詳細(xì)說明了這些標(biāo)記和Android屬性的意義和互動(dòng)。
【編輯推薦】

















