>>Intent介绍:
Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动 作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的 交互。因此,可以将Intent理解为不同组件之间通信的“媒介”专门提供组件互相调用的相关信息。
>>Intent作用:
Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成android各个组件之间的通讯。比如说调用 startActivity()来启动一个activity,或者由broadcaseIntent()来传递给所有感兴趣的 BroadcaseReceiver, 再或者由startService()/bindservice()来启动一个后台的service.所以可以看出来,intent主要是用来启动其他的 activity 或者service,所以可以将intent理解成activity之间的粘合剂。
>>Inten启动组件的方法:
Intent可以启动一个Activity,也可以启动一个Service,还可以发起一个广播Broadcasts。具体方法如下:
>>Intent重要属性
动作(Action)
数据(Data)
分类(Category),
类型(Type)
组件(Compent)
扩展信(Extra)
------------------------------------------------------------------------------------------------------------------------------
1.Action属性:
TargetActivity在其中声明了,即目标action,如果我们需要做一个跳转的动作,就需要在Intent中指定目标的action,如下
Intent intent =new Intent("com.scott.intent.action.TARGET");
startActivity(intent);
Intent也内含了很多默认的action
public static final String ACTION_MAIN = "android.intent.action.MAIN";
public static final String ACTION_VIEW = "android.intent.action.VIEW";
public static final String ACTION_WEB_SEARCH = "android.intent.action.WEB_SEARCH";
public static final String ACTION_CALL = "android.intent.action.CALL";
2.data和extras,即执行动作要操作的数据和传递到目标的附加信息:
3.category,要执行动作的目标所具有的特质或行为归类
例如:在我们的应用主界面Activity通常有如下配置:
代表该目标Activity是该应用所在task中的初始Activity并且出现在系统launcher的应用列表中。
注意:着重强调一下android.intent.category.DEFAULT的作用, 如果通过隐式‘启动’,必须要在Androidmainfast.xml意图过滤中添加,否则匹配不到!
4.type:要执行动作的目标Activity所能处理的MIME数据类型
5.component,目标组件的包或类名称
在使用component进行匹配时,一般采用以下几种形式:
1 intent.setComponent(new ComponentName(getApplicationContext(), TargetActivity.class));
2 intent.setComponent(new ComponentName(getApplicationContext(), "com.scott.intent.TargetActivity"));
3 intent.setComponent(new ComponentName("com.scott.other", "com.scott.other.TargetActivity"));
其中,前两种是用于匹配同一包内的目标,第三种是用于匹配其他包内的目标。
【注意】:如果我们在Intent中指定了component属性,系统将不会再对action、data/type、category进行匹配。
常用: