Blog Details

Home › 女足u17世界杯 › Intent中的四个重要属性——Action、Data、Category、Extras

Intent中的四个重要属性——Action、Data、Category、Extras

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

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

示例:

[html] view plain copy

print?

Intent intent = new Intent();

intent.setAction(Intent.ACTION_DIAL);

startActivity(intent);

意思是要打开一个拨号界面,结果:

或者:

[html] view plain copy

print?

Intent intent = new Intent();

intent.setAction("android.intent.action.TargetAction");

startActivity(intent);

[html] view plain copy

print?

android:name="com.example.rovi.TargetActivity"

android:launchMode="singleTask" >

意思是要打开一个过滤Action注册名为“android.intent.action.TargetAction”的Activity,结果:

则到达TargetActivity界面,这时action和category都要进行设置。此时Action就如广播一样,只负责发出事件,至于谁来响应,系统会找出合适的对象来反应,同样的都可以有N个组件来响应,不同的是Action的响应组件如果没有设置默认响应组件,则需要选择,如:

这就是多个应用响应一个Action的结果。

响应代码:

[html] view plain copy

print?

intent.setAction(Intent.ACTION_SEND);

intent.setType("message/rfc822");

startActivity(intent);

有时Action也需要与Type合作才能选出合适的应用来。

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

示例:

[html] view plain copy

print?

Uri uri = Uri.parse("tel:13888888888");

intent.setAction(Intent.ACTION_VIEW);

intent.setData(uri);

startActivity(intent);

效果图:

不仅打开了拨号界面,而且还把号码传进来,当然如果Uri写的是网址则会打开浏览器,写的坐标则打开地图,也都会把数据传进来。

示例:

[html] view plain copy

print?

Intent intent = new Intent();

Uri uri = Uri.fromFile(getFilesDir());

intent.setDataAndType(uri, "application/pdf");

startActivity(intent);

寻找能打开pdf文件的Activity,结果给了这么几种选择:

用于打开pdf文件,同样也可以设置图片格式、Word格式等。

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

示例:

[html] view plain copy

print?

Intent intent = new Intent();

intent.setAction(Intent.ACTION_MAIN);

intent.addCategory(Intent.CATEGORY_LAUNCHER);

startActivity(intent);

意思是要打开一个category注册为Intent.CATEGORY_LAUNCHER的Activity,结果:

这些应用有注册此Category。也可以直接回到桌面

示例:

[html] view plain copy

print?

Intent intent = new Intent();

intent.setAction(Intent.ACTION_MAIN);

intent.addCategory(Intent.CATEGORY_HOME);

startActivity(intent);

4、 Extras:Extras属性主要用于传递目标组件所需要的额外的数据。通过putExtras()方法设置。 Extras:Extras属性主要用于传递目标组件所需要的额外的数据。通过putExtras()方法设置。

通常我们使用Intent来直接传递Bundle对象,但也可以传递其他系统内置的一些参数。

上面只是介绍了一些Intent的基础的用法,实际情况要根据需要,将Action、Category、Data进行组合使用,使用代码或者在配置文件完成。

附部分Intent属性值:

Action:

ACTION_MAIN:Android Application的入口,每个Android应用必须且只能包含一个此类型的Action声明。

ACTION_VIEW:系统根据不同的Data类型,通过已注册的对应Application显示数据。

ACTION_EDIT:系统根据不同的Data类型,通过已注册的对应Application编辑示数据。

ACTION_DIAL:系统默打开拨号程序,如果Data中设置电话号码,则拨号框中会显示此号码。

ACTION_CALL:直接呼叫Data中所带的号码。

ACTION_ANSWER:接听来电。

ACTION_SEND:由用户指定发送方式进行数据发送操作。

ACTION_SENDTO:系统根据不同的Data类型,通过已注册的对应Application进行数据发送操作。

ACTION_BOOT_COMPLETED:Android系统在启动完毕后发出带有此Action的广播(Broadcast)。

ACTION_TIME_CHANGED:Android系统的时间发生改变后发出带有此Action的广播(Broadcast)。

ACTION_PACKAGE_ADDED:Android系统安装了新的App之后发出带有此Action的广播(Broadcast)。

ACTION_PACKAGE_CHANGED:Android系统中已存在的App发生改变之后(如更新)发出带有此Action的广播(Broadcast)。

ACTION_PACKAGE_REMOVED:Android系统卸载App之后发出带有此Action的广播(Broadcast)。

Category:

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

CATEGORY_HOME:设置该组件为Home Activity。

CATEGORY_PREFERENCE:设置该组件为Preference。

CATEGORY_LAUNCHER:设置为当前应用程序优先级最高的Activity,通常与ACTION_MAIN配合使用。

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

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

Extras:

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

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

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

EXTRA_SUBJECT:存放邮件主题字符串。

EXTRA_TEXT:存放邮件内容。

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

EXTRA_PHONE_NUMBER:存放调用ACTION_CALL时的电话号码。

Data:

tel://:号码数据格式,后跟电话号码。

mailto://:邮件数据格式,后跟邮件收件人地址。

smsto://:短息数据格式,后跟短信接收号码。

content://:内容数据格式,后跟需要读取的内容。

file://:文件数据格式,后跟文件路径。

market://search?q=pname:pkgname:市场数据格式,在Google Market里搜索包名为pkgname的应用。

geo://latitude, longitude:经纬数据格式,在地图上显示经纬度所指定的位置。

MimeType:

Copyright © 2088 世界杯历史_2018世界杯亚洲区预选赛 - mcryt.com All Rights Reserved.
友情链接