在AndroidManifest.xml文件中的android:windowSoftInput...

 <!-- 调拨出库 -->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中图形界面中编辑:

 image

相关文章
相关标签/搜索