赞
踩
a.在Activity之间:
然后在MainActivity中重写onActivityResult方法拿到回传过来的数据,其中requestCode表示请求码,resultCode表示请求结果码,data就是你刚才在SecondActivity中通过setResult方法设置的intent,数据就在其中。
b.在广播中的使用:
c.在service中的使用:
下面逐个学习这些属性:
a.component(组件)
在介绍Component之前,我们首先来了解ComponentName这个类;ComponentName与Intent同位于android.content包下,这个类主要用来定义可见一个应用程序组件,通过查看源码,我们了解到他有五个构造方法:
案例:新建两个应用:TaobaoApp、BaiduApp,在“淘宝”界面拉起“百度”界面:
在TaobaoApp主界面中,我们通过ComponentName(String pkg,String cls)构造方法(第一个参数是目标组件的包名,第二个参数是目标组件具体的类名:)实例化ComponentName对象,并将它传入intent:
在BaiduApp主界面只做简单的展示:
b.action(动作)
此标签用于指定当前组件可以执行哪些操作,可以指定多个action,比如当前组件启动的intent指定的action与其他组件在<intent-filter>所列出的任意一个匹配的话,当前组件就可以完成这个action:
常用的Action如下所示:
两条原则:
(1)一条<intent-filter>元素至少应该包含一个<action>,否则任何Intent请求都不能和该<intent-filter>匹配。
(2)如果Intent请求的action和<intent-filter>中个任意一条<action>匹配,那么该Intent就可以启动该activity(前提是除了action的其它项也要匹配通过)。
两条注意:
如果Intent请求或<intent-filter>中没有说明具体的action类型,那么会出现下面两种情况:
(1)如果<intent-filter>中没有包含任何action类型,那么无论什么Intent请求都无法和这条<intent-filter>匹配。
(2)如果Intent请求中没有设定action类型,那么只要<intent-filter>中包含有action类型,这个Intent请求就将顺利地通过<intent-filter>的行为测试。
c.category(类别)
Category用来指定当前动作(action)被执行的环境,也就是说组件在哪种环境中才能被激活。
常用的Category属性如下所示:
注意:如果该组件想要通过隐式intent方式激活,那么不能没有任何category设置,至少包含一个android.intent.category.DEFAULT
d.data(数据)
我们先来看一个示例:
- case R.id.btn_start_baidu://启动TargetActivity
- Intent intentBaidu = new Intent(Intent.ACTION_VIEW);
- intentBaidu.setData(Uri.parse("http://www.baidu.com"));
- startActivity(intentBaidu);
- break;
首先我们指定intent的action为Intent.ACTION_VIEW,再把百度的网址传进Uri.parse方法中,最终解析成一个Uri对象,再调用intent.setData()方法把Uri对象传进去,最后调用startActivity()就可以访问到百度了。
1>显示Intent,顾名思义,就是你要启动的活动从代码里面可以明显的看到,比如 intent.setClass(this, SecondAactivity.class);这行代码,我们可以很清楚地看到,它是要从当前活动跳转至 SecondAactivity这个活动。
2>隐式Intent刚好相反,我们从代码角度无法直接看出来将要跳转到哪里,因为它是通过匹配action和category等信息,然后交给系统去分析将要响应哪个组件。
eg.指定启动活动的action:
intent.setAction("com.android.basic.summary.SecondActivity_ACTION_START");
在清单文件里面指定SecondActivity的action和category
- <activity android:name=".SecondAactivity">
- <intent-filter>
- <action android:name="com.android.basic.summary.SecondActivity_ACTION_START" />
- <category android:name="android.intent.category.DEFAULT"/>
- </intent-filter>
- </activity>
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。