Action、Category、Data、Extras知识详解

开头

Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递。通过其自带的属性,其实可以方便的完成很多较为复杂的操作。例如直接调用拨号功能、直接自动调用合适的程序打开不同类型的文件等等。

诸如此类,都可以通过设置Intent属性来完成。

Intent主要有以下四个重要属性,它们分别为:


Action:Action属性的值为一个字符串,它代表了系统中已经定义了一系列常用的动作。通过setAction()方法或在清单文件AndroidManifest.xml中设置。默认为:DEFAULT。

Data:Data通常是URI格式定义的操作数据。例如:tel:// 。通过setData()方法设置。

Category:Category属性用于指定当前动作(Action)被执行的环境。通过addCategory()方法或在清单文件AndroidManifest.xml中设置。默认为:CATEGORY_DEFAULT。

Extras:Extras属性主要用于传递目标组件所需要的额外的数据。通过putExtras()方法设置。常作为一个Intent,BroadCast Receiver等组件的传入数据使用!


以上的一些基本知识,还有一些约束希望大家可以自己去了解,具体可以参见<Android 4高级编程>这边书第五章

  

四个属性所有常量值如下所示:(写得快死掉,请大家转载要注明出处:http://blog.csdn.net/ljphhj)

为了让讲解起来比较有条理,我将按照自己捋的顺序来讲解这四个属性!


Data:


Uri.Parse(x字符串):[格式]


意义


tel:电话号码


用于一些拨号的程序


mailto:收件人邮箱地址


用于发邮件的程序


smsto:短信收件人号码


用于发送短信的程序


content://内容数据格式


用于一些要读取数据内容的地方()


file://文件路径


用于打开指定路径的文件


market://search?q=pname:pkgname:市场数据格式


在Google Market里搜索包名为pkgname的应用


geo:latitude,longitude


在地图上显示指定经纬度的位置


http://xxx.xxxx.com


在浏览器中打开一个网页

Action:


Activity Action 

常量名称


意义


ACTION_MAIN


应用程序入口


ACTION_VIEW


显示数据给用户


ACTION_ATTACH_DATA


指明附加信息给其他地方的一些数据


ACTION_EDIT


显示可编辑的数据


ACTION_PICK


选择数据


ACTION_CHOOSER


显示一个Activity选择器


ACTION_GET_CONTENT


获得内容


ACTION_DIAL


显示打电话的拨号盘


ACITON_CALL


直接打电话


ACTION_SEND


直接发短信


ACTION_SENDTO


选择发短信


ACTION_SEND_MULTIPLE


共享多个二进制内容(MIME type类型)


ACTION_ANSWER


应答来电


ACTION_INSERT


插入数据


ACTION_DELETE


删除数据


ACTION_RUN


运行数据


ACTION_SYNC


同步数据


ACTION_PICK_ACTIVITY


从数据项中选择一个子项目,并返回你所选中的项目Activity


ACTION_SEARCH


搜索


ACTION_SEARCH_LONG_PRESS


搜索长按


转载请注明出处=>csdn胖虎:http://blog.csdn.net/ljphhj


ACTION_WEB_SEARCH


Web搜索


ACTION_FACTORY_TEST


工厂测试入口点


ACTION_ALL_APPS


列出所有能应用(相当于启动器Launcher)


ACTION_BUG_REPORT


显示出Bug报告


ACTION_CREATE_SHORTCUT


创建具有“快捷方式”的Activity


ACTION_FACTORY_TEST


工厂测试的入口点


ACTION_INSERT_OR_EDIT


插入并编辑新数据(添加联系人)


ACTION_POWER_USAGE_SUMMARY


显示电池的使用信息


ACTION_SET_WALLPAPER


调用设置墙纸的Activity


ACTION_SYSTEM_TUTORIAL


Start the platform-defined tutorial


ACTION_VOICE_COMMAND


开启语音命令Activity


BroadCast Action


常量名称


意义


ACTION_AIRPLANE_MODE_CHANGED


判断是否开启“飞行模式”


ACTION_BATTERY_CHANGED


监控电池状态改变


ACTION_BATTERY_OKAY


电池脱离“低电量”时达到正常状态


ACTION_BOOT_COMPLETED


在系统完成启动之后触发


ACTION_CAMERA_BUTTON


按下“按照”按钮时触发


ACTION_CLOSE_SYSTEM_DIALOGS


系统关闭时/按下Home键/锁屏等使系统窗口关闭的事件时通知


ACTION_CONFIGURATION_CHANGED


当“语言”发生改变时通知(只能通过registerReceiver来注册广播,不能在清单文件中注册)【不建议使用】


ACTION_DATE_CHANGED


日期改变


ACTION_DEVICE_STORAGE_LOW


设备内存不足时通知


ACTION_DEVICE_STORAGE_OK


设备内存情况恢复正常时通知


ACTION_DOCK_EVENT


Dock 底座的通知(车载、家用、桌面等底座)


ACTION_EXTERNAL_APPLICATIONS_AVAILABLE


安装的APP从SD卡移动到系统空间


ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE


安装的APP从系统空间移动到SD卡


ACTION_GTALK_SERVICE_CONNECTED


当GTalk连接上的时候通知


ACTION_GTALK_SERVICE_DISCONNECTED


当GTalk断开连接的时候通知


ACTION_HEADSET_PLUG


连接上外设的时候通知(耳机等)


ACTION_INPUT_METHOD_CHANGED


输入法发生改变时通知


ACTION_LOCALE_CHANGED


当前系统区域位置改变时通知


ACTION_MANAGE_PACKAGE_STORAGE


当设备内存不足时(LOW),由用户发起这个广播通知,触发开启包管理器


ACTION_MEDIA_BAD_REMOVAL


未正确移除SD卡(正确移除SD卡的方法:设置--SD卡和设备内存--卸载SD卡),但已把SD卡取出来时发出的广播

广播:扩展介质(扩展卡)已经从 SD 卡插槽拔出,但是挂载点 (mount point) 还没解除 (unmount)


ACTION_MEDIA_BUTTON


按Media 键的时候通知


ACTION_MEDIA_CHECKING


SD卡插入时挂载会发出该通知


ACTION_MEDIA_EJECT


当用户移除掉外部设备SD卡的时候,需要在这个广播通知内进行挂载点打开的全部文件的关闭处理,在这个通知中SD卡还可以读写,在收到ACTION_MEDIA_REMOVED、ACTION_MEDIA_UNMOUNTED等广播之后,sd 卡便不可以读写了!


ACTION_MEDIA_MOUNTED


SD卡被成功挂载


ACTION_MEDIA_NOFS


表示SD卡存在,但是文件系统不兼容或者尚未格式化


ACTION_MEDIA_REMOVED


SD卡被移除


ACTION_MEDIA_UNMOUNTED


SD卡已卸载


ACTION_MEDIA_SHARED


SD卡进入USB连接模式


ACTION_MEDIA_UNSHARED


SD卡退出USB连接模式


ACTION_MEDIA_UNMOUNTABLE


SD卡存在,但是无法挂载


ACTION_MEDIA_SCANNER_STARTED


开始扫描


ACTION_MEDIA_SCANNER_FINISHED


结束扫描


ACTION_MEDIA_SCANNER_SCAN_FILE


正在扫描一个文件


ACTION_NEW_OUTGOING_CALL


拨出的电话会通知(可以做拨出电话的拦截)


转载请注明出处=>csdn胖虎:http://blog.csdn.net/ljphhj


ACTION_PACKAGE_ADDED


有应用程序被添加


ACTION_PACKAGE_CHANGED


有应用程序被改变


ACTION_PACKAGE_DATA_CLEARED


有应用程序数据被清除


ACTION_PACKAGE_INSTALL


有应用程序被安装(监控恶意软件)


ACTION_PACKAGE_REMOVED


有应用程序被删除


ACTION_PACKAGE_REPLACED


有应用程序被替代


ACTION_PACKAGE_RESTARTED


有应用程序被重启


ACTION_POWER_CONNECTED


外接电源接入(或充电器)时通知


ACTION_POWER_DISCONNECTED


外接电源移除(或充电器)时通知


ACTION_PROVIDER_CHANGED


有的ContentProvider有自己的空间,这些空间我们想要接触,当有数据发生改变的时候,我们可以触发这个广播通知。


ACTION_REBOOT


设备重启通知


ACTION_SCREEN_ON


屏幕打开


ACTION_SCREEN_OFF


屏幕关闭


ACTION_SHUTDOWN


系统关机广播


ACTION_TIME_CHANGED


时间改变时通知


ACTION_TIME_TICK


以分钟为单位,一分钟触发一次,(不能在清单文件中定义,只能通过动态注册的方式)


ACTION_TIMEZONE_CHANGED


时区改变时通知


ACTION_UID_REMOVED


用户UID被移除时通知


ACTION_UMS_CONNECTED


手机已进入大容量模式,但是没有消息说USB有没有连上


ACTION_UMS_DISCONNECTED


手机已退出容量模式


ACTION_USER_PRESENT


当用户屏幕解锁后通知


ACTION_WALLPAPER_CHANGED


壁纸改变的通知


Category:


常量名称


意义


CATEGORY_DEFAULT


Android系统中默认的执行方式,按照普通Activity的执行方式执行。


CATEGORY_ALTERNATIVE


把要做的动作指定为在特定数据类型上执行的默认动作的可选项(如:一个联系人的默认动作为查看其信息,而可选的动作则是对其进行信息编辑)


CATEGORY_CAR_DOCK


指定手机被插入汽车底座(硬件)时运行该Activity


CATEGORY_CAR_MODE


设置该Activity可在车载环境下使用


CATEGORY_DESK_DOCK


指定手机被插入桌面底座(硬件)时运行该Activity


CATEGORY_PREFERENCE


设置该组件为Preference。


CATEGORY_DEVELOPMENT_PREFERENCE


说明Activity是一个设置面板


CATEGORY_EMBED


说明可以运行在Activity容器内


CATEGORY_FRAMEWORK_INSTRUMENTATION_TEST


用来作为测试仪器测试框架下的代码


CATEGORY_HOME


设置该组件为Home Activity。


CATEGORY_LAUNCHER


设置该组件为在当前应用程序启动器中优先级最高的Activity,通常为入口ACTION_MAIN(Action)配合使用。


CATEGORY_BROWSABLE


设置该组件可以使用浏览器启动。


CATEGORY_GADGET


设置该组件可以内嵌到另外的Activity中。


转载请注明出处=>csdn胖虎:http://blog.csdn.net/ljphhj


CATEGORY_INFO


用于提供包信息


CATEGORY_MONKEY


说明可以被Monkey或者其他的测试工具执行


CATEGORY_OPENABLE


用来指示一个ACTION_GET_CONTENT的intent, 希望可以ContentResolver.openInputStream可以打开URI


CATEGORY_SAMPLE_CODE


作为一个简单代码示例使用(用户一般不用这个)


CATEGORY_SELECTED_ALTERNATIVE


设置这个Activity是否可以被认为是用户当前选择的数据的一个可选择的Action(做插件扩展:http://www.cnblogs.com/xirihanlin/archive/2009/07/31/1536055.html)


CATEGORY_TAB


用于一个TabActivity中


CATEGORY_TEST


用于一般的测试示例程序(一般用户不用)


CATEGORY_UNIT_TEST


用于单元测试

Extras:

EXTRA常量值


意义


EXTRA_ALARM_COUNT


存放延迟的Pending Alarms的数量


EXTRA_BCC


存放邮件密送人地址的字符串数组


EXTRA_CC


存放邮件抄送人地址的字符串数组


EXTRA_CHANGED_COMPONENT_NAME


Deprecated.(过时了)


EXTRA_CHANGED_COMPONENT_NAME_LIST


用于调用ACTION_PACKAGE_CHANGED时,列出改变的组件的名字数组


EXTRA_DATA_REMOVED


用于ACTION_PACKAGE_REMOVED时,指示是完全卸载(删除程序和数据),还是部分卸载(留下数据,这意味着有可能是更新应用程序)


EXTRA_DOCK_STATE


用于ACTION_DOCK_EVENT需要这个Dock State.它能取的值有EXTRA_DOCK_STATE_UNDOCKED,EXTRA_DOCK_STATE_DESK,EXTRA_DOCK_STATE_CAR.


EXTRA_DOCK_STATE_CAR


汽车底座


EXTRA_DOCK_STATE_DESK


桌面底座


EXTRA_DOCK_STATE_UNDOCKED


无Dock底座


EXTRA_DONT_KILL_APP


用一个boolean型的值在调用ACTION_PACKAGE_REMOVED或者ACTION_PACKAGE_CHANGED来重载默认的重启应用的行为


EXTRA_EMAIL


存放邮件地址的字符串数组


EXTRA_INITIAL_INTENTS


增加额外的Activity选择项到ACTION_CHOOSER调用时的选择列表中


EXTRA_INTENT


配合ACTION_PICK_ACTIVITY.选择你想要的Activity


EXTRA_KEY_EVENT


以KeyEvent对象方式存放触发Intent的按键


EXTRA_PHONE_NUMBER


存放调用ACTION_CALL时的电话号码


EXTRA_REMOTE_INTENT_TOKEN


远程的Intent


EXTRA_REPLACING


一个boolean值配合ACTION_PACKAGE_REMOVED来指示是否程序被替换(重新安装程序)


EXTRA_SHORTCUT_ICON


图标的名字字符串,它对应的类型为Bitmap,作为快捷方式的图标


EXTRA_SHORTCUT_ICON_RESOURCE


图标的名字的资源字符串,类型为ShortcutIconResource,作为快捷方式的图标


EXTRA_SHORTCUT_INTENT


用于shortcut(快捷方式)的Intent中


EXTRA_STREAM


A content: URI holding a stream of data associated with the Intent, used with ACTION_SEND to supply the data being sent.


EXTRA_SHORTCUT_NAME


配合ACTION_CREATE_SHORTCUT来创建一个Activity的快捷方式时,指定快捷方式的名字


EXTRA_SUBJECT


存放邮件主题字符串


EXTRA_TEMPLATE


The initial data to place in a newly created record. Use with ACTION_INSERT. The data here is a Map containing the same fields as would be given to the underlying ContentProvider.insert() call.


EXTRA_TEXT


存放邮件内容


EXTRA_TITLE


配合ACTION_CHOOSER,在创建Chooser Dialog的时候,指定该Dialog的Title.


转载请注明出处=>csdn胖虎:http://blog.csdn.net/ljphhj


EXTRA_UID


一个int类型,配合ACTION_UID_REMOVED支持注册uid的包,方便当ACTION_PACKAGE_REMOVED或者ACTION_PACKAGE_CHANGED触发时能

找到同一个目标(用UID来区分)


希望这些对大家学习Intent中的这些常量值,还有BroadCast Receiver的学习有一些帮助。

转载请注明出处:http://blog.csdn.net/ljphhj

 

时间: 2024-08-04 21:57:46

Action、Category、Data、Extras知识详解的相关文章

struts2.0中Action的对象生命周期详解!!(转)

原文出处:http://blog.csdn.net/wxy_g/article/details/2071662 有很多人问Struts2.0中的对象既然都是线程安全的,都不是单例模式,那么它究竟何时创建,何时销毁呢? 这个和struts2.0中的配置有关,我们来看struts.properties ### if specified, the default object factory can be overridden here ### Note: short-hand notation is

标签知识详解

不干胶也叫自粘标签材料,是以纸张.薄膜或特种材料为面料,背面涂有胶粘剂,以涂硅保护纸为底纸的一种复合材料.由于涂布技术有多种,致使不干胶材料形成有不同档次,目前的发展方向是由传统的辊式涂布.刮刀涂布向高压流延涂布方向发展,以最大限度保证涂布的均匀感性,避免气泡和针眼的产生,保证涂布质量,而流延布涂布在国内技术还未成熟,国内主要采用的是传统辊式涂布.  条码机常用的不干胶标签由底纸.面纸及作为两者粘合的粘胶剂三部分组成.底纸表面呈油性,对粘胶剂具有隔离作用,所以用作面纸的附着体,以便面纸能够很容易

linux下grub相关知识详解

一.grub相关知识详解 (1)grub:GRand Unified Bootloader grub 0.x :grub legacy grub 1.x : grub2 grub legacy: stage1:mbr的bootloader阶段 stage1_5:mbr之后的扇区,让stage1的bootloader能够识别stage2所在分区的文件系统 stage2:磁盘分区(/boot/grub/) 配置文件:/etc/grub.conf-->/boot/grub/grub.conf stag

Spring Data操作Redis详解

Spring Data操作Redis详解 Redis是一种NOSQL数据库,Key-Value形式对数据进行存储,其中数据可以以内存形式存在,也可以持久化到文件系统.Spring data对Redis进行了很好的封装,用起来也是十分的得心应手.Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted se

Servlet基础知识详解

Servlet基础知识详解 Servlet基础知识详解 Servlet程序执行全过程 Servlet映射路径 Servlet映射练习 Servlet生命周期 为什么要学习Servlet生命周期 Servlet重要的生命周期方法 模拟通过反射构造Servlet对象 Servlet单实例多线程 Servlet留给开发者的init方法 Servlet中核心对象学习 HttpServletRequest对象 HttpServletResponse对象 ServletConfig对象 ServletCon

关于Defferred对象知识详解

关于Defferred对象知识详解 一.什么是deferred对象 Deferred是jQuery开发团队为延时操作做出的回调函数的解决方案,意思是延时到某个时间点再执行. 二.deferred的实现 1.创建三个$.Callbacks对象,分别表示成功done,失败fail,处理中process三种状态 2.对应了三种处理结果,resolve(已完成).rejiect(以失败).notify(未完成) 3.创建一个promise对象,具有state.always.then.primise方法

RabbitMQ,Apache的ActiveMQ,阿里RocketMQ,Kafka,ZeroMQ,MetaMQ,Redis也可实现消息队列,RabbitMQ的应用场景以及基本原理介绍,RabbitMQ基础知识详解,RabbitMQ布曙

消息队列及常见消息队列介绍 2017-10-10 09:35操作系统/客户端/人脸识别 一.消息队列(MQ)概述 消息队列(Message Queue),是分布式系统中重要的组件,其通用的使用场景可以简单地描述为: 当不需要立即获得结果,但是并发量又需要进行控制的时候,差不多就是需要使用消息队列的时候. 消息队列主要解决了应用耦合.异步处理.流量削锋等问题. 当前使用较多的消息队列有RabbitMQ.RocketMQ.ActiveMQ.Kafka.ZeroMQ.MetaMq等,而部分数据库如Re

RabbitMQ基础知识详解

RabbitMQ基础知识详解 2017年08月28日 20:42:57 dreamchasering 阅读数:41890 标签: RabbitMQ 什么是MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息. RabbitMQ是MQ的一种.下面详细介绍一下RabbitMQ的基本概念. 1.队列.生产者.消费者 队列是RabbitMQ的内部对象,用于存

音频知识详解

引言 现实生活中,我们听到的声音都是时间连续的,我们称为这种信号叫模拟信号.模拟信号需要进行数字化以后才能在计算机中使用. 目前我们在计算机上进行音频播放都需要依赖于音频文件.音频文件的生成过程是将声音信息采样.量化和编码产生的数字信号的过程,人耳所能听到的声音,最低的频率是从 20Hz 起一直到最高频率 20KHZ,因此音频文件格式的最大带宽是 20KHZ.根据奈奎斯特的理论,只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音,所以音频文件的采样率一般在 40