Android学习之Intent显式,隐式
intent在一个Android程序的开发中起着非常重要的作用,它就像一个媒介,完成组件之间的相互调用,以及数据信息的传递,对于Android开发人员来说非常重要,本文是我学习的一些心得,包括intent的显式、隐式,方便大家学习与分享,欢迎转载,请注明出处。
【显式Intent】
显式Intent是通过组件名称来指定目标组件,通常用于应用程序的内部消息,例如Activity启动子Service或其他Activity。
显式Intent完成组件之间的调度一般有三种方式,我们以Activity组件为例进行说明
我们设定我们要从MainActivity跳转到OtherScreenActivity
一、利用构造方法完成
为了方便大家理解,下面给出了这个构造方法的源码,以供参考
二、利用SetComponent(ComponentName component)方法
三、setClass/setClassName方法
开发小技巧:
对于显式的操作,我们要多多借用logcat的帮助,比如:我们希望点击按钮,跳转到系统自带的应用程序比如说图库,我们该怎么获得图库的组件名称呢?
方法很简单:
1、首先我们在模拟器/手机中打开图库所在的应用界面如图
2、清空logcat中的日志信息
3、点击图库,在LogCat中All messages中图库的启动信息.
上图红框中即为所需信息,代码如下
【隐式Intent】
隐式不明确指定启动哪个Activity,而是设置Action、Data、Category,让系统来筛选出合适的Activity。筛选是根据所有的
下面来介绍一下Intent过滤器
Intent过滤器
intent过滤器中可以配置的主要参数有:
1、action --- 动作 //想要做什么
2、data --- 数据 //用于设置Intent上的数据的URI和数据的MIME类型
3、category --- 类型 //用来作用被执行动作的附加信息,也就是动作执行的前提
开发人员通过在AndroidManifest.xml中application下的activity内配置Intent过滤器,值得一提的是:一个过滤器中可以存在很多action,data,category,只要有一组匹配该activity就可能会被启动
提示:关于action,category,data系统给出了很多值供开发者使用,大家可以查看
http://blog.csdn.NET/scarecrow_fly/article/details/77057882
让我们通过Android系统上层原装应用源码来体会配置Intent过滤器的方法
下面是短信应用程序的配置源码:
每个参数的配置都是独立的,互不影响,可以配置action也可以不配置,category,data也是如此
例如发送短信的配置源码:
还有下面这个:
那么 ,配置完了我们如何在代码中进行操作然后打开那些activity呢?
举个例子:
从MainActivity跳转到OtherScreenActivity
这里我们的action和data采用的是自定义
下面是我们的代码实图:
activity_main.xml中第三个Button
第一个界面的示意图:
AndroidManifest.xml配置
MainActivity中click3,请大家对比它与上图中配置的action,category,data
因此当我们点击第三个Button时就会跳转到第二个界面
特别提醒:
当Intent过滤器不设置action时,默认所有的动作发生时都会去该activity中进行匹配
data也是如此,不设置的默认为适合的
但是,当category没有设置时,默认为android.intent.category.DEFAULT,需要去设置相应的
addCategory("android.intent.category.DEFAULT");
友情提示:我们这里只是探究Intent显式和隐式的初级应用,更多高级应用欢迎留言!
作者:scarecrow_fly, 欢迎转载,请注明出处: http://blog.csdn.NET/scarecrow_fly/article/details/77046470