android应用程序的三大组件——Activities、Services、Broadcast Receiver,通过消息触发,这个消息就是Intent,中文又翻译为"意图"(我感觉读着不顺畅,还是读英文)。我们能够通过Intent去启动三大组件,而且通过Intent携带数据到其它组件中。本文来看一下怎么使用Intent启动组件,以及Intent的过滤规则。

Intent对象

首先来看Intent对象中包括的成员。

private String mAction;   //动作
private Uri mData;          //数据
private String mType;
private String mPackage;   //包名
private ComponentName mComponent;  //组件名 包括程序包名+类名,以及应用包名
private int mFlags;            //标志
private HashSet<String> mCategories;   //种类
private Bundle mExtras;    //附加信息
private Rect mSourceBounds;
private Intent mSelector;
private ClipData mClipData;

看Intent的源代码,主要包括以上成员。

Intent解析

Intent解析有两种方式:显式解析和隐式解析。

显式解析。我们直接传组件进入。打开这个指定的组件,比較简单,通常应用程序内使用。
比方我们创建一个显式的Intent:

Intent intent = new Intent(context, OtherActivity.class);

隐式解析,没有指定详细的组件,通过规则去匹配组件。通经常使用于多个程序之间的互相调用比較多。我们使用隐式解析式。action、data(包含URI和数据类型)、category都必须有。比方我们启动浏览器去打开一个网址,intent能够这样创建:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://blog.isming.me"));

上面没有填写category,创建Intent的时候会自己主动填写为default。

等待补充吧。

乱扯

好吧,本来像。会写的非常长的,可是真正想写的时候,发现就这么简单。也没什么好写的。下次多看看源代码。再看有没有要补充的。就酱紫了!

原文地址:http://blog.isming.me/blog/2014/06/15/use-intent-start-component/。欢迎转载,转载请注明出处。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

使用Intent启动组件相关推荐

  1. [Android] Intent启动activity方式

    在Android系统中,应用程序一般都有多个Activity,Intent可以实现不同Activity之间的切换和数据传递,Intent启动Activity方式:显式启动和隐式启动. 显式启动: 按名 ...

  2. 利用Intent启动Activity

    利用Intent启动Activity Intent是一种轻量级消息传递机制,可以在同一应用程序内部的不同组建之间传递信息,也可以在不同应用程序的组建之间传递消息,还可以做诶广播时间发布android系 ...

  3. Activity、Task、Application关系+Intent启动Flag

    什么是Android  Application? 简单来说,一个apk文件就是一个Application. 任何一个AndroidApplication基本上是由一些Activities组成,当用户与 ...

  4. Android使用Intent启动Service的Intent必须是显式的

    今天使用Intent来启动Service时,代码如下: //为 Intent设置Action属性 intent.setAction("com.hust.service");star ...

  5. Tomcat9 无法启动组件[Connector[AJP/1.3-8009]]

    前言 windows server 2003 tomcat 9.0.50 无法启动组件[Connector[AJP/1.3-8009]] 在tomcat中开启ajp后,启动tomcat遇到错误无法启动 ...

  6. chrome浏览器无法加载百度网页启动组件怎么办

    chrome浏览器无法加载百度网页启动组件怎么办 chrome浏览器无法加载百度网页启动组件怎么办?chrome浏览器百度打不开提示无法加载百度网页启动组件怎么办?使用chrome浏览器打开百度的时候 ...

  7. 使用Intent启动常用的应用与服务

    打开浏览器显示网页: Uri uri = Uri.parse("http://www.ataaw.com"); Intent intent  = new Intent(Intent ...

  8. idea无法启动组件[StandardEngine[Catalina].StandardHost[localhost].StandardContex

    idea无法启动组件[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/] 这是我学习时遇到的问题之一,感觉对我这种新 ...

  9. Android摄像头--通过Intent启动

    通过Intent启动摄像头可以快速实现视频/图片的录制,但是这种方式调用的不是"摄像头",而是Android设备的"摄像程序",是手机厂商封装好的功能 @Ove ...

最新文章

  1. 交换基本数据类型的方法swap,并影响到主方法
  2. 563. 二叉树的坡度
  3. frp 后台地址_Frp后台自动启动的几个方法
  4. 怎样下载C/C++的免费、开源且跨平台IDE——Code::Blocks
  5. 相干光通信系统的调制与解调
  6. jquery知识点总结二
  7. 高效管理CrossOver容器里的程序
  8. Centos 7.x 安装配置tomcat-8过程梳理
  9. 面试评估表和评估指标雷达图(附模板下载)
  10. 从头尝试小米手机root
  11. VAR模型Stata实例操作
  12. rovio视觉里程计的笔记
  13. 奢侈品典当价格以及流程又是如何的?现今哪些品牌的奢侈品押呗可以典当!
  14. 【投屏】Scrcpy源码分析四(最终章 - Server篇)
  15. SpringBoot强制下载文件
  16. python 将函数封装成pyd或者so文件,调用该文件
  17. 日本下一个超大规模数据中心破土动工,位于京阪奈科学城
  18. 求约数java_最多约数问题(Java)
  19. 恒大kk服务器信息端口,恒大kk手机客户端服务器
  20. 豆瓣影评爬虫--python

热门文章

  1. java调用webservice_WebService学习总结(四)——调用第三方提供的webService服务
  2. python控制语句中的条件语句_『Python』条件控制语句
  3. python的flag是什么意思_python flag 什么意思
  4. 基于直方图的图像增强算法(HE、CLAHE、Retinex)
  5. 【杂谈】有三AI知识星球最近都GAN了哪些内容?
  6. 我为什么要冒险从工业界离职做内容平台有三AI
  7. 速卖通运营之如何提升商品动销率
  8. OpenStack之Keystone模块
  9. Java多线程使用场景
  10. DES加密实现的思想及代码