Android控件使用篇Android专题

全面解析:AndroidManifest.xml文件中activ

2020-11-05  本文已影响0人  千夜零一

activity代码示例

<activity
        android:name=".module.market.activity.ProductInfoActivity"
        android:screenOrientation="portrait"
        android:launchMode="singleTop"
        android:exported="true"
        android:windowSoftInputMode="adjustResize|stateHidden">
         <intent-filter>
                  <action android:name="android.intent.action.VIEW" />
                  <category android:name="android.intent.category.DEFAULT" />
                  <data android:scheme="abesfesee" />
         </intent-filter>
</activity>     

launchMode属性:Activity启动模式

具体解析请走——>>传送门:activity的四种启动模式和任务栈
【1】standard:标准模式
【2】singleTop:栈顶复用模式
【3】singleTask:栈内复用模式
【4】singleInstance:单例模式,也叫“全局唯一模式”。


screenOrientation属性:设置屏幕方向

【1】unspecified,默认值,由系统决定,不同手机可能不一致。
【2】landscape,强制横屏显示。
【3】portrait,强制竖屏显。
【4】behind,与前一个activity方向相同。
【5】sensor,根据物理传感器方向转动,用户90度、180度、270度旋转手机方向6activity都更着变化。
【7】sensorLandscape,横屏旋转,一般横屏游戏会这样设置。
【8】sensorPortrait,竖屏旋转。
【9】nosensor,旋转设备时候,界面不会跟着旋转。初始化界面方向由系统控制。
【10】user,用户当前设置的方向。


exported属性:设置是否支持其他应用调用当前组件

  在AndroidManifest.xml文件中,四大组件都有android:exported属性,是个boolean值,可以为true或false。Activity的exported属性在单个App可能用得比较少,但对于对外接口的Activity或公司内部多个应用间接口调用的设计会有比较大的影响。(比如要对接微信支付、支付宝支付、调起银行app支付)
  Activity 是否可由其他应用的组件启动 —“true”表示可以,“false”表示不可以。
  默认值取决于 Activity 是否包含 Intent 过滤器。没有任何过滤器意味着 Activity 只能通过指定其确切的类名称进行调用。 这意味着 Activity 专供应用内部使用(因为其他应用不知晓其类名称)。 因此,在这种情况下,默认值为“false”。另一方面,至少存在一个过滤器意味着 Activity 专供外部使用,因此默认值为“true”。


windowSoftInputMode属性:设置窗口软键盘交互模式

【1】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置。
【2】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示。
【3】stateHidden:用户选择activity时,软键盘总是被隐藏。
【4】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的。
【5】stateVisible:软键盘通常是可见的。
【6】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态。
【7】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示。
【8】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间。
【9】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分。


configChanges属性:用于捕获手机状态的改变(横竖屏)

具体解析请走——>>传送门:Activity横竖屏切换时的生命周期变化
  android中的组件Activity在manifest.xml文件中可以指定参数android:ConfigChanges,用于捕获手机状态的改变
  在Activity中添加了android:configChanges属性,在当所指定属性(Configuration Changes)发生改变时,通知程序调用onConfigurationChanged()函数

设置方法:将下列字段用“|”符号分隔开,例如:“locale|navigation|orientation”
【1】“mcc“ 移动国家号码,由三位数字组成,每个国家都有自己独立的MCC,可以识别手机用户所属国家。
【2】“mnc“ 移动网号,在一个国家或者地区中,用于区分手机用户的服务商。
【3】“locale“ 所在地区发生变化。
【4】“touchscreen“ 触摸屏已经改变。(这不应该常发生)
【5】“keyboard“ 键盘模式发生变化,例如:用户接入外部键盘输入。
【6】“keyboardHidden“ 用户打开手机硬件键盘。
【7】“navigation“ 导航型发生了变化。(这不应该常发生。)
【8】“orientation“ 设备旋转,横向显示和竖向显示模式切换。
【9】“fontScale“ 全局字体大小缩放发生改变。


intent-filter:activity跳转页面过滤器

(1)<action>标签:表明意图的动作

Action属性 — Data属性 — 说明
【1】 ACTION_MAIN android.intent.action.MAIN 应用程序入口
【2】ACTION_VIEW android.intent.action.VIEW 显示数据给用户
【3】ACTION_ATTACH_DATA android.intent.action.ATTACH_DATA 指明附加信息给其他地方的一些数据
【4】ACTION_EDIT android.intent.action.EDIT 显示可编辑的数据
【5】ACTION_PICK android.intent.action.PICK 选择数据
【6】ACTION_CHOOSER android.intent.action.CHOOSER 显示一个Activity选择器
【7】ACTION_GET_CONTENT android.intent.action.GET_CONTENT 获得内容
【8】ACTION_DIAL android.intent.action.GET_CONTENT 显示打电话面板
【9】ACITON_CALL android.intent.action.DIAL 直接打电话
【10】ACTION_SEND android.intent.action.SEND 直接发短信
【11】ACTION_SENDTO android.intent.action.SENDTO 选择发短信
【12】ACTION_ANSWER android.intent.action.ANSWER 应答电话
【13】ACTION_INSERT android.intent.action.INSERT 插入数据
【14】ACTION_DELETE android.intent.action.DELETE 删除数据
【15】ACTION_RUN android.intent.action.RUN 运行数据
【16】ACTION_SYNC android.intent.action.SYNC 同步数据
【17】ACTION_PICK_ACTIVITY android.intent.action.PICK_ACTIVITY 选择Activity
【18】ACTION_SEARCH android.intent.action.SEARCH 搜索
【19】ACTION_WEB_SEARCH android.intent.action.WEB_SEARCH Web搜索
【20】ACTION_FACTORY_TEST android.intent.action.FACTORY_TEST 工厂测试入口点


(2)<category>标签:表示动作的类别

Category字符串常量 — 描述
【1】CATEGORY_GADGET 表示目标Activity可以被内嵌到其他Activity当中 。
【2】CATEGORY_HOME 目标Activity是HOME Activity,即手机开机启动后显示的Activity,或按下HOME键后显示的Activity 。
【3】CATEGORY_LAUNCHER 表示目标Activity是应用程序中最优先被执行的Activity 。
【4】CATEGORY_PREFERENCE 表示目标Activity是一个偏爱设置的Activity。


(3)<data>标签:表示与动作要操作的数据

data属性 — 说明
【1】ACTION_VIEW content://contacts/people/1 显示id为1的联系人信息 。
【2】ACTION_DIAL content://contacts/people/1 将id为1的联系人电话号码显示在拨号界面中 。
【3】ACITON_VIEW tel:123 显示电话为123的联系人信息 。
【4】ACTION_VIEW http://www.google.com 在浏览器中浏览该网站 。
【5】ACTION_VIEW file://sdcard/mymusic.mp3 播放MP3
【6】ACTION_VIEW geo:39.2456,116.3523 显示地图
【7】scheme:用于声明该组件所能匹配的Intent的Data属性的scheme部分。


(4)<type>标签:对data类型的描述

  type属性用于指定该Data所指定Uri对应的MIME类型,这种MIME类型可以是任何自定义的MIME类型,只要符合abc/xyz格式的字符串即可。


(5)<extras>标签:附件信息

【1】Extra键值字符串常量 描述
【2】EXTRA_BCC 装有邮件密送地址的字符串数组
【3】EXTRA_CC 装有邮件抄送地址的字符串数组
【4】EXTRA_EMAIL 装有邮件发送地址的字符串数组
【5】EXTRA_INTENT 使用ACTION_PICK_ACTIVITY动作时装有Intent选项的键
【6】EXTRA_KEY_EVENT 触发该Intent的案件的KeyEvent对象
【7】EXTRA_PHONE_NUMBER 使用拨打电话相关的Action时,电话号码字符串的键,类型为String
【8】EXTRA_SHORTCUT_ICON 使用ACTION_CREATE_SHORTCUT在HomeActivity创建快捷方式时,对快捷方式的描述信息。 其中ICON和ICON_RESOURCE描述的是快捷方式的图标,类型分别为Bitmap和ShortcutIconResource。INTENT描述的是快捷方式相对应的Intent对象。NAME描述的是快捷方式的名字。
【9】EXTRA_SHORTCUT_ICON_RESOURCE EXTRA_SHORTCUT_INTENT 【10】EXTRA_SHORTCUT_NAME EXTRA_SUBJECT 描述信息主题的键
【11】EXTRA_TEXT 使用ACTION_SEND动作时,用来描述要发送的文本信息,类型为CharSequence
【12】EXTRA_TITLE 使用ACTION_CHOOSER动作时,描述对话框标题的键,类型为CharSequence
【13】EXTRA_UID 使用ACTION_UID_REMOVED动作时,描述删除的用户id的键,类型为int


(6)<component>标签:目标组件

  应用程序可根据该Intent的“意图”去启动指定组件。


大功告成!

上一篇下一篇

猜你喜欢

热点阅读