您的位置:首页 > 编程语言 > Go语言

Action、Category、Data、Extras知识详解

2017-05-02 10:31 405 查看
开头

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
屏幕打开(只能通过代码动态注册BroadCastReceiver才能生效)
ACTION_SCREEN_OFF
屏幕关闭(只能通过代码动态注册BroadCastReceiver才能生效)
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来区分)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息