使用Intent启动组件
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启动组件相关推荐
- [Android] Intent启动activity方式
在Android系统中,应用程序一般都有多个Activity,Intent可以实现不同Activity之间的切换和数据传递,Intent启动Activity方式:显式启动和隐式启动. 显式启动: 按名 ...
- 利用Intent启动Activity
利用Intent启动Activity Intent是一种轻量级消息传递机制,可以在同一应用程序内部的不同组建之间传递信息,也可以在不同应用程序的组建之间传递消息,还可以做诶广播时间发布android系 ...
- Activity、Task、Application关系+Intent启动Flag
什么是Android Application? 简单来说,一个apk文件就是一个Application. 任何一个AndroidApplication基本上是由一些Activities组成,当用户与 ...
- Android使用Intent启动Service的Intent必须是显式的
今天使用Intent来启动Service时,代码如下: //为 Intent设置Action属性 intent.setAction("com.hust.service");star ...
- Tomcat9 无法启动组件[Connector[AJP/1.3-8009]]
前言 windows server 2003 tomcat 9.0.50 无法启动组件[Connector[AJP/1.3-8009]] 在tomcat中开启ajp后,启动tomcat遇到错误无法启动 ...
- chrome浏览器无法加载百度网页启动组件怎么办
chrome浏览器无法加载百度网页启动组件怎么办 chrome浏览器无法加载百度网页启动组件怎么办?chrome浏览器百度打不开提示无法加载百度网页启动组件怎么办?使用chrome浏览器打开百度的时候 ...
- 使用Intent启动常用的应用与服务
打开浏览器显示网页: Uri uri = Uri.parse("http://www.ataaw.com"); Intent intent = new Intent(Intent ...
- idea无法启动组件[StandardEngine[Catalina].StandardHost[localhost].StandardContex
idea无法启动组件[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/] 这是我学习时遇到的问题之一,感觉对我这种新 ...
- Android摄像头--通过Intent启动
通过Intent启动摄像头可以快速实现视频/图片的录制,但是这种方式调用的不是"摄像头",而是Android设备的"摄像程序",是手机厂商封装好的功能 @Ove ...
最新文章
- 交换基本数据类型的方法swap,并影响到主方法
- 563. 二叉树的坡度
- frp 后台地址_Frp后台自动启动的几个方法
- 怎样下载C/C++的免费、开源且跨平台IDE——Code::Blocks
- 相干光通信系统的调制与解调
- jquery知识点总结二
- 高效管理CrossOver容器里的程序
- Centos 7.x 安装配置tomcat-8过程梳理
- 面试评估表和评估指标雷达图(附模板下载)
- 从头尝试小米手机root
- VAR模型Stata实例操作
- rovio视觉里程计的笔记
- 奢侈品典当价格以及流程又是如何的?现今哪些品牌的奢侈品押呗可以典当!
- 【投屏】Scrcpy源码分析四(最终章 - Server篇)
- SpringBoot强制下载文件
- python 将函数封装成pyd或者so文件,调用该文件
- 日本下一个超大规模数据中心破土动工,位于京阪奈科学城
- 求约数java_最多约数问题(Java)
- 恒大kk服务器信息端口,恒大kk手机客户端服务器
- 豆瓣影评爬虫--python