AndroidManifest.xml中<activity></activity>相关属性说明
虽说,从事android开发有一定时间了,对于Activity大家也都不陌生,但是具体的对于Activity中相关属性的含义有必要做一个系统的总结:
intent-filter
action: 来指定响应的动作名。动作名必须是独一无二的字符串,所以,一个好的习惯是使用基于 Java 包的命名方式的命名系统。
category: 指定在什么样的环境下动作才被响应,android.intent.category.DEFAULT默认。使用action启动时,即隐式启动时,必须在
AndroidManifest.xml中设置category默认的,否则启动失败;若直接指定Component,即显示意图,则无需设置category.
data: 用setData()设定的Intent请求的URI数据类型和scheme必须与IntentFilter中所指定的一致;若IntentFilter中还指定了authority或path,它们也需要相匹配才会通过测试;若Intent Filter仅指定了scheme,则所有具有该scheme的URI都能匹配该Intent Filter。
原因:Android默认为所有通过startActivity()方法传递的隐式Intent设置一个Category属性,即android.intent.category.DEFAULT(CATEGORY_DEFAULT),所以,接收隐式Intent的Activity必须在过滤器中声明android.intent.category.DEFAULT(包含android.intent.action.MAIN和android.intent.category.LAUNCHER设置的是一个例外。它们表明Activity作为新任务启动并且显示在启动屏幕上,包含android.intent.category.DEFAULT与否均可)。
补充:
一个应用程序可以有多个Activity,每个Activity是同级别的,那么在启动程序时,最先启动哪个Activity呢?有些程序可能需要显示在程序列表里,有些不需要。 怎么定义呢?
android.intent.action.MAIN决定应用程序最先启动的Activity
android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里
注:MAIN+LAUNCHER需配合使用才有效果
android.intent.category.DEFAULT:每一个通过 startActivity() 方法发出的隐式 Intent 都至少有一个 category,就是 "android.intent.category.DEFAULT", 所以只要是想接收一个隐式 Intent 的 Activity 都应该包括 "android.intent.category.DEFAULT" category,不然将导致 Intent 匹配失败。
----------------具体参考:http://www.2cto.com/kf/201411/352062.html
------------------------ http://www.2cto.com/kf/201308/236999.html
AndroidManifest.xml中<activity></activity>相关属性说明的更多相关文章
- Android APP 读取 AndroidManifest.xml 中的版本信息详解
APP都会涉及到版本的问题,Android APP的版本信息保存在AndroidManifest.xml文件的顶部.如下图: 有2个属性表示,“android:versionCode”和“androi ...
- Android之读取 AndroidManifest.xml 中的数据
转:http://www.2cto.com/kf/201208/151123.html 下来示例如何读取这些数据. 1 版本信息.应用名称 2 Appliction 的Meta-data 3 Acti ...
- Android之读取 AndroidManifest.xml 中的数据:版本号、应用名称、自定义K-V数据(meta-data)
AndroidManifest.xml中的定义如下: <manifest xmlns:android="http://schemas.android.com/apk/res/andro ...
- 获取AndroidManifest.xml中的meta-data元素
android 开发中: 在AndroidManifest.xml中,<meta-data>元素可以作为子元素, 被包含在<activity>.<application& ...
- 8.0后广播在AndroidManifest.xml中注册后发送intent接收不到广播
8.0后广播在AndroidManifest.xml中注册后发送intent是接收不到广播了,看了一下原因,好像是8.0为了管理系统和节约电量特别针对广播和服务发送intent的方式启动做出的改变,也 ...
- Android Activity task 相关属性
所谓的 task ,是指用户完成某一项任务时与之交互的一组 Activity.比如用户要向开发者汇报 bug,先打开程序主页,然后打开关于页面,再点击报告 bug 按钮,打开编辑邮件页面.当前这三个 ...
- AndroidManifest.xml中的注册组件
界面跳转时Activity的识别方法有两种:第一种,通过name 第二种,通过<intent-filter> 通过配置文件中配置<intent-filter>来实现Activi ...
- AndroidManifest.xml中data标签中所有属性的含义
属性(ATTRIBUTES): android:host 这个属性用户定义URI授权的主机部分,除非给过滤器也指定了<data>元素的scheme属性,否则这个属性没有意义. 注意:在An ...
- Dom4j向XML中增加节点与属性——(四)
先获取到节点,然后在节点山添加Element 添加节点 添加属性 设置开始标签与结束标签的值book.addElement("描述").addAttribute("nam ...
随机推荐
- HDU 1251统计难题
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submi ...
- Unity开发心路历程——制作画板
有人说 编程是份很无聊的工作 因为整个工作时间面对的都是电脑这种机器 因为眼睛盯着的内容都是索然无味的代码 因为总是会有意想不到的bug让你怀疑自己的智商 而我认为 编程是件及其有意思的事情 可观的收 ...
- 十.oc内存管理
引用百度百科图 栈(stack)又名堆栈. 栈定义:栈是限定仅在表头进行插入和删除操作的线性表(有序).(又称:后进先出表) (动态)数据展示存储的地方.(举例:升降电梯)特点:先进后出(FILO—F ...
- selenium第二课(脚本录制seleniumIDE的使用)
一.Selenium也具有录制功能,可以web中回放,录制的脚本可以转换为java.python.ruby.php等多种脚本语言.seleniumIDE是Firefox的一个插件,依附于Firefox ...
- IntelliJ Idea 集成svn 和使用
最近公司的很多同事开始使用svn,便尝试了一下,虽然快捷键与eclipse 有些不同,但是强大的搜索功能与"漂亮的界面"(个人认为没有eclipse好看 ),还是值得我们去使用的. ...
- iOS.Performance-trick-presentViewController-is-so-slow-in-didSelectRowAtIndexPath
presentViewController is so slow in "tableView:didSelectRowAtIndexPath:" Use Case: 在UITabl ...
- 有效提高win7电脑网速50倍
有效提高win7电脑网速50倍 目前有多少人在使用Windows7?据统计微软已成功售出3.5亿份正版操作系统,加上市场上流传以Win7旗舰版为首的盗版Win7系统下载,Win7激活次数可能已经超过1 ...
- 一个程序员眼中的好UI
最近接到一个项目发来的UI设计图,我觉得她给的材料很专业,特此分享. 发的RAR压缩包里面有一个images目录,里面放的都是切片好的图片. 图片切片基本上都是靠近边线切的,边上留的空白很少,这样切的 ...
- [10]APUE:信号
[a] 常用信号 SIGABRT 调用 abort 函数时产生此信号,进程异常终止 SIGALRM 调用 alarm 或 setitimer 函数超时之后产生 SIGCHLD 子进程终止或 stop ...
- 蓝牙BLE实用教程
蓝牙BLE实用教程 Bluetooth BLE 欢迎使用 小书匠(xiaoshujiang)编辑器,您可以通过 设置 里的修改模板来改变新建文章的内容. 1.蓝牙BLE常见问答 Q: Smart Re ...