<!-- 調撥出庫 -->android
<activity瀏覽器
android:name="ouc.sei.wuzi.DiaoBoChuKu"性能
android:launchMode="singleInstance"google
android:screenOrientation="landscape"spa
android:windowSoftInputMode="stateHidden|adjustPan" >orm
</activity>xml
android:windowSoftInputModeblog
activity主窗口與軟鍵盤的交互模式,能夠用來避免輸入法面板遮擋問題,Android1.5後的一個新特性。ip
這個屬性能影響兩件事情:ci
【一】當有焦點產生時,軟鍵盤是隱藏仍是顯示
【二】是否減小活動主窗口大小以便騰出空間放軟鍵盤
它的設置必須是下面列表中的一個值,或一個」state…」值加一個」adjust…」值的組合。在任一組設置多個值——多個」state…」values,例如&mdash有未定義的結果。各個值之間用|分開。例如:<activity android:windowSoftInputMode="stateVisible|adjustResize". . . >
在這設置的值(除"stateUnspecified"和"adjustUnspecified"之外)將覆蓋在主題中設置的值
各值的含義:
【A】stateUnspecified:軟鍵盤的狀態並無指定,系統將選擇一個合適的狀態或依賴於主題的設置
【B】stateUnchanged:當這個activity出現時,軟鍵盤將一直保持在上一個activity裏的狀態,不管是隱藏仍是顯示
【C】stateHidden:用戶選擇activity時,軟鍵盤老是被隱藏,(直到當該Activity主窗口獲取焦點時)
【D】stateAlwaysHidden:當該Activity主窗口獲取焦點時,軟鍵盤也老是被隱藏的
【E】stateVisible:軟鍵盤一般是可見的
【F】stateAlwaysVisible:用戶選擇activity時,軟鍵盤老是顯示的狀態
【G】adjustUnspecified:默認設置,一般由系統自行決定是隱藏仍是顯示
【H】adjustResize:該Activity老是調整屏幕的大小以便留出軟鍵盤的空間
【I】adjustPan:當前窗口的內容將自動移動以便當前焦點從不被鍵盤覆蓋和用戶能老是看到輸入內容的部分
android:screenOrientation
有時候須要限制橫豎屏切換。只須要在AndroidManifest.xml文件中加入android:screenOrientation屬性限制。
android:screenOrientation設定該活動的方向,該值能夠是任何一個下面的字符串:
"unspecified"
- 默認值. 由系統選擇顯示方向. 在不一樣的設備可能會有所不一樣.
"landscape"
- 橫向
就表示當咱們切換橫豎屏的時候,屏幕的內容始終以橫屏顯示,而不會根據屏幕的方向來顯示內容
"portrait"
- 縱向
"user"
- 用戶當前的首選方向
"behind"
- 與在活動堆棧下的活動相同方向
"sensor"
- 根據物理方向傳感器確定方向. 取決於用戶手持的方向, 當用戶轉動設備,他跟隨改變
"nosensor"
- 不經物理方向傳感器確定方向. 該傳感器被忽略, 因此當用戶轉動設備, 顯示不會跟隨改變. 除了這個區別,系統選擇使用相同的政策取向對於「未指定」設置. 系統根據「未指定」("unspecified")設定選擇相同顯示方向.
android:launchMode
在多Activity開發中,有多是本身應用之間的Activity跳轉,或者夾帶其餘應用的可複用Activity。可能會但願跳轉到原來某個Activity實例,而不是產生大量重複的Activity。
這須要爲Activity配置特定的加載模式,而不是使用默認的加載模式。
加載模式分類及在哪裏配置
Activity有四種加載模式:
1,standard:
若是從A跳到A,intent5次,task裏5個activity;
2,single Top:
若是從A 跳B,再從B跳A,若是此時棧頂爲A,則不建立新實例,直接把Intent給A,但若是棧頂不是A,則還要建立A的實例
3,singleTask
若是從A跳B,再從B跳A,不管是否棧頂棧底,只要A在,則將Intent給A,不會建立A的新實例;
4,singleInstance
不一樣於前3種模式,前3種只是在同一個task的,而實例化的策略不一樣。這種模式下的activity會單獨存在一個task下。
現成的例子是google地圖。好比我有一個應用是導遊方面的,其中調用的google地圖Activity。那麼如今我好比按home(後臺 activity onstop,back是finish)鍵,而後到應用列表中打開google地圖,你會發現顯示的就是剛纔的地圖,其實是同一個Activity。
若是使用上面三種模式,是沒法實現這個需求的。google地圖應用中有多個上下文Activity,好比路線查詢等的,導遊應用也有一些上下文Activity。在各自應用中回退要回退到各自的上下文Activity中。
總結:
1 2:會建立新實例
3 4:不會建立新實例
123:activity的taskid相同
4:activity的taskid不一樣。被分到單獨一個task中
轉自:http://greenboy1.iteye.com/blog/1033827
(1)standard
(2)singleTask
能夠將TaskA TaskB理解爲兩個應用,好比TaskA是你當前的應用,TaskB是默認瀏覽器。
設置的位置在AndroidManifest.xml文件中activity元素的android:launchMode屬性:
<activity android:name="ActB" android:launchMode ="singleTask"></activity>
也能夠在Eclipse ADT中圖形界面中編輯: