android清单文件的作用,1.3 清单文件中的Activity

清单文件中的Activity

Activity是一个应用组件,每个Activity都会获得一个用户绘制用户界面的窗口。窗口通常充满屏幕,但也可以小于屏幕浮在其它窗口上。

一个应用通常由多个彼此松散的Activity组成。一般一个应用会指定一个Activity为主Activity,首次启动应用的时候,会呈现给用户主Activity。

在清单文件(AndroidManifest.xml)中声明

...

元素主要属性

属性名

作用

android:name

组建名,Activity源文件所在的相对路径

android:screenOrientation

Activity在屏幕当中显示的方向

android:configChanges

Activity捕捉设备状态变化。

当所指定属性(Configuration Changes)发生改变时,回调 onConfigurationChanged()函数。

1. 设备旋转(orientation),

2. 键盘隐藏(keyboardHidden),

3. 屏幕尺寸(screenSize)

android:exported

表示该组件是否能够被其它应用程序组件调用或者交互。

该属性默认值依赖于它所包含得过滤器(intent-filter)。

如果没有intent-filter,则表明该组件只能通过显示Intent调用,所以默认值为false。

如果含有intent-filter,则表明该组件能通过隐式Intent调用,所以默认值为true。

android:launchMode

activity启动模式。四种:

Standard,SingleTop,SingleTask,SingleInstance

android:taskAffinity

Activity所吸附的任务栈,该属性一般在lauchMode为singleTask模式才生效。默认taskAffinity于根Activity相同,即应用的包名。

android:windowSoftInputMode

键盘弹出后,界面调整模式

1. 当获取焦点时是否弹出键盘

2. 是否减少Activity主窗口大小以腾出空间给软键盘

android:allowTaskReparenting

当某个拥有相同affinity任务栈即将返回前台时,当前Activity是否能从启动它得任务栈中转移到与它相同Affinity相同任务栈中去。

默认值,false,只能停留在启动它得任务栈。

利用该值的特性,可以强行让一个不再显示的Activity转移到另外的任务栈中。

典型的应用,就是让一个程序的Activity转移到另外的应用程序中。

android:alwaysRetainTaskState

系统是否一直维持任务栈的状态。该属性只对任务栈根Activity有效,默认值false。

通常,用户从launch界面重新打开应用的时候,系统会清空任务栈中根Activity以上所有Activity,比如说,用户停留在主界面很长时间没有操作了。

当将该值设置为true的时候,总是返回任务的最后状态,比如说,浏览器应用打开了多个页面,用户不期望下次打开浏览器的时候,之前的页面全部清空了。

android:clearTaskOnLaunch

每次从launch启动应用时,是否清楚根Activity以上所有的Activity,默认值false

android:enabled

该组件是否能够被实例化。默认true

android:excludeFromRecents

该Activity是否排除在用户最近任务列表。默认值false。

android:finishOnTaskLaunch

当从launch再次启动任务时,是否finish该实例,默认值false。

android:multiprocess

是否可以把Activity新实例放入到启动它的组件所在的进程中。

Intent

Intent是一个消息传递对象。Intent作用

指定当前组件的动作

组件之间传递数据

Intent 有两种,一种是显示Intent,一种是隐式Intent。

显示Intent 按名称指定要启动的组件。在自己应用内使用显示Intent来启动组件。

隐式Intent 不指定特定的组件,而是在AndroidManife.xml文件中声明要执行的常规操作,从而容许其它应用中的组件来处理它。

intent-filter

在使用隐式Intent启动组件的时候,Android系统会通过Intent中的三个信息action data category 与在AndroidManifest.xml文件中注册的组件中的intent-filter进行比较,当匹配一致的时候,启动对应的组件。

在清单文件中intent-filter有三个元素action data category,Intent的过滤器(intent-filter),按照以下优先关系查找:action->data->category

action

intent-filter必须包含一个,或者多个action元素,否则该组件匹配不到任何的Intent。Intent中的action与其中的任一个action在字符串形式上完全相同,action方面就匹配成功。系统定义了一些标准的action属性,比如ACTION_MAIN 代表Application入口,ACTION_VIEW,ACTION_WEB_SEARCH等

data

data由两部分组成mimeType和URI,data可以仅设置其中一项,或者都设置。

mimeType 是指媒体类型,例如imgage/jpeg,auto/mpeg4和viedo/*等

URI 则是由scheme、host、port、path | pathPattern | pathPrefix这4部分组成

://:/[||]

category

Intent中如果出现了category,不管几个category,对于每个category来说,他必须是过滤器中定义的category,才能匹配成功。系统默认设置了Intent的category为android.intent.category.DEFAULT

隐式Intent实例

1. 通过浏览器打开网页

Intent intent = new Intent();

intent.setAction(Intent.ACTION_VIEW);

intent.setData(Uri.parse("http://www.google.com"));

intent.addCategory(Intent.CATEGORY_BROWSABLE);

intent.addCategory(Intent.CATEGORY_DEFAULT);

startActivity(intent);

2. 通过网页打开本地应用

网页html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值