在Android 中,Intent用来封装两个Activity之间的调用意图,实现两个Activity之间的跳转,并传递信息。

Intent的七大重要属性:ComponentName Action  Category  Data  Type Extra  Flag

1、ComponentName :Intent 通过该属性标识要跳转的组件,而明确指出ComponentName 的为显示Intent,而没有明确指定ComponentName 的为隐示Intent。

//显示意图

Intent intent = new Intent(FirstActivity.this,SecondActivity.class);

startActivity(intent);

//隐示,此时Intent会根据指定规则启动符合条件的组件

intent.setAction(Intent.ACTION_CALL);

startActivity(intent);

2、Action   Category

通常这两项会结合使用,在主配置文件的intent-filter标签下使用这两个标签。这种方式实现了Activity和Intent之间的分离,耦合度降低。

<activity
  android:name=".MainActivity"
  android:label="@string/app_name" >
  <intent-filter>
    <action android:name="MainActivity" />

    <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>
</activity>

//启动Intent

Intent intent = new Intent();

intent.setAction("MainActivity");

startActivity(intent);

Intent对象不仅可以启动本应用内的程序组件,也可以启动Android系统的其他应用的组件,包括系统内置的程序组件(需要设置权限)。

    • ACTION_MAIN:(android.intent.action.MAIN)Android程序入口。
    • 每个Android应用必须且只能包含一个此类型的Action声明。【如果设置多个,则哪个在前,执行哪个。】
    • ACTION_VIEW: (android.intent.action.VIEW) 显示指定数据。
    • ACTION_EDIT: (android.intent.action.EDIT) 编辑指定数据。
    • ACTION_DIAL: (android.intent.action.DIAL) 显示拨号面板。
    • ACTION_CALL: (android.intent.action.CALL) 直接呼叫Data中所带的号码。
    • ACTION_ANSWER: (android.intent.action.ANSWER) 接听来电。
    • ACTION_SEND: (android.intent.action.SEND) 向其他人发送数据(例如:彩信/email)。
    • ACTION_SENDTO:  (android.intent.action.SENDTO) 向其他人发送短信。
    • ACTION_SEARCH: (android.intent.action.SEARCH) 执行搜索。
    • ACTION_GET_CONTENT: (android.intent.action.GET_CONTENT) 让用户选择数据,并返回所选数据。

3、常用Category属性常量

   CATEGORY_DEFAULT: (android.intent.category.DEFAULT) Android系统中默认的执行方式,按照普通Activity的执行方式执行。

   CATEGORY_HOME: (android.intent.category.HOME) 设置该组件为Home Activity。

   CATEGORY_PREFERENCE: (android.intent.category.PREFERENCE) 设置该组件为Preference。

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

  CATEGORY_BROWSABLE: (android.intent.category.BROWSABLE) 设置该组件可以使用浏览器启动。

在代码中可以通过Intent.addCategory()方法给Intent添加Category

4、系统内置的几个Data属性常量:

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

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

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

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

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

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

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

例:

Intent intent=new Intent();

intent.setAction(Intent.ACTION_CALL);

Uri uri = Uri.parse("tel://10086");

intent.setData(uri);

startActivity(intent);

5、Type

用于指定Data数据的MIME类型。

//播放视频

uri = Uri.parse("mnt/sdcard/video.3gp");
intent.setDataAndType(uri, "video/*");

6、系统内置的几个Extra常量:

  • EXTRA_BCC:存放邮件密送人地址的字符串数组。
  • EXTRA_CC:存放邮件抄送人地址的字符串数组。
  • EXTRA_EMAIL:存放邮件地址的字符串数组。
  • EXTRA_SUBJECT:存放邮件主题字符串。
  • EXTRA_TEXT:存放邮件内容。
  • EXTRA_KEY_EVENT:以KeyEvent对象方式存放触发Intent的按键。
  • EXTRA_PHONE_NUMBER:存放调用ACTION_CALL时的电话号码。

//发送的短信

intent.setAction(Intent.ACTION_SENDTO);
uri = Uri.parse("sms:10086");
intent.setData(uri);
intent.putExtra("sms_body", "haha");

7、Flag

Intent可调用addFlags()方法来为Intent添加控制标记。
 
FLAG_ACTIVITY_CLEAR_TOP:同singleTask
FLAG_ACTIVITY_SINGLE_TOP:singleTop
FLAG_ACTIVITY_NEW_TASK:同standard
 
 FLAG_ACTIVITY_MULTIPLE_TASK
 FLAG_ACTIVITY_BROUGHT_TO_FRONT
 FLAG_ACTIVITY_RESET_TASK_IF_NEEDED

关于Intent的七大重要属性的更多相关文章

  1. 06 Activity的启动模式 Intent的七大属性的总结

    1.Task以及back stack     >Task(任务)  为了完成一个功能  多个Activity的集合,     当你的应用程序启动时 系统会自动创建Task用于管理Activity ...

  2. Intent的七大组件——Android开发之路5

    ------Intent------ Android中三个核心组件——Activity.Services.BroadCastProvider都是通过Intent传递参数. startActivity( ...

  3. Intent四个重要属性

    Intent四个重要属性   Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递.通过其自带的属性,其实可以方便的完成很多较为复杂的操作.例如直接调用拨号功能.直接自 ...

  4. Android开发学习笔记:Intent的简介以及属性的详解【转】

    一.Intent的介绍 Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述 ...

  5. Intent的简介以及属性详解

    一.Intent的介绍 Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述 ...

  6. 【转载】Android开发学习笔记:Intent的简介以及属性的详解

    http://liangruijun.blog.51cto.com/3061169/634411/ 一.Intent的介绍 Intent的中文意思是“意图,意向”,在Android中提供了Intent ...

  7. 【转】【Java/Android】Intent的简介以及属性的详解

    一.Intent的介绍 Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述 ...

  8. 关于Intent的七大属性

    原谅我愚昧,Intent七大属性这个概念我也是昨天才接触到,看了一下,都是一些常用的东西,就是没有总结过,那么今天就来简单总结一下. Intent七大属性是指Intent的ComponentName. ...

  9. Intent的七大属性

    1.Action Action属性代表系统要执行的动作 系统提供如下常用的Action属性 *ACTION_MAIN:应用程序入口点 *ACTION_VIEW:显示指定数据 *ACTION_EDIT: ...

随机推荐

  1. webuploader 上传文件参数设置

    webUploader 是款很好用的优秀的开源上传组件,由百度公司开发,详细的介绍可参见webUploader 的官方文档: 最近在使用webUploader时,需要添加额外的参数,并在后台获取,参数 ...

  2. Mysql常见四种索引的使用

    提到MySQL优化,索引优化是必不可少的.其中一种优化方式 --索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升. 我们知道项目性能的瓶颈主要是在"查(select)&q ...

  3. 引用对象的使用和易产生bug的示例

    本文属原创,转载请注明出处:http://www.cnblogs.com/robinjava77/p/5481608.html  (Robin) QuoteTest(引用对象技巧) import ja ...

  4. 1045 access denied for user 'root'@'localhost' using password yes的解决方法

    今天把一个项目和项目的数据库都下载到了本地,安装好项目和在本地配置好数据库后,在浏览器登陆项目的后台却出现了以下错误:   后来上百度搜索了好几个答案,都是讲述修改数据库密码的步骤,但是就是没有说明为 ...

  5. 常见寻找OEP脱壳的方法

    方法一: 1.用OD载入,不分析代码! 2.单步向下跟踪F8,是向下跳的让它实现 3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——运行到所选) 4.绿色线条表 ...

  6. 转 LoadRunner 技巧之 IP欺骗 (推荐)

    IP欺骗也是也loadrunner自带的一个非常有用的功能. 需要使用ip欺骗的原因: 1.当某个IP的访问过于频繁,或者访问量过大是,服务器会拒绝访问请求,这时候通过IP欺骗可以增加访问频率和访问量 ...

  7. VIM编辑器之常用命令

     分类: vim   目录(?)[-] 第一级 存活 第二级 感觉良好 第三级  更好更强更快 更好 更强 更快 第四级 Vim 超能力 在当前行上移动光标 0   f F t T 区域选择 acti ...

  8. visual studio code(vscode) 调试php(转)

    原文链接:http://www.cnblogs.com/CLR010/p/5276077.html visual studio code(vscode) 调试php   1.下载vscode (vis ...

  9. vim 使用2 转载 为了打开方便

    http://coolshell.cn/articles/5426.html vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个 ...

  10. matlab神经网络实验

    第0节.引例  本文以Fisher的Iris数据集作为神经网络程序的测试数据集.Iris数据集可以在http://en.wikipedia.org/wiki/Iris_flower_data_set  ...