首页 > 代码库 > 小猪的Android入门之路 Day 6
小猪的Android入门之路 Day 6
小猪的Android入门之路 Day 6
Android应用核心:Intent(意图)
-----转载请注明出处:coder-pig
本节引言:
通过前面的学习中,我们都知道可以调用startActivity(intent)或者startActivityForResult(intent)
来启动一个新的Activity了,他们的参数都是Intent类型的实例,那么这个Intent是什么东西呢?
有什么用?还有一个问题,相信细心的朋友都发现AndroidManifest.xml的activity标签中有一个
intent-filter的东东,这个又是什么呢?好了,带着这些因为,我们来一点点地解析android应用的核心
Intent(意图)!
本节学习路线图:
学习路线图解析:
①弄懂什么叫Intent,他是拿来干嘛的?
②区分显式Intent与隐式Intent,启动一个Activity的不同方式!
③了解Intent的七个属性,Flags不理解可以暂时放一放
④会使用显示Intent和隐式Intent去激活一个组件的流程,以及隐式Intent的预定义动作与自定义动作!
正文:
Intent的相关概念:
显式Intent与隐式Intent的区别:
Intent的七个属性:
ComponentName(组件名称):
Action(动作)与Category(种类):
DATA(数据)与Type(MIME类型)
Extras(额外)
Flags(标记)
Intent的使用:
显式Intent:
这个是我们以前用的最多的一种方式,通常启动第二个Activity,我们只需要填入要启动的
Activity的全限定类名,在调用startActivity( )或者startActivityForResult()即可
代码示例:点击按钮返回HOME界面
效果图:
核心代码:
Intent it = new Intent();
it.setAction(Intent.ACTION_MAIN);
it.addCategory(Intent.CATEGORY_HOME);
startActivity(it);
代码示例二:点击按钮打开百度:
效果图如下:
核心代码:
Intent it = new Intent();
it.setAction(Intent.ACTION_VIEW);
it.setData(Uri.parse("http://www.baidu.com"));
startActivity(it);
隐式Intent:
预定义动作的隐式Intent:
代码示例:点击按钮后,所有Action为VIEW的Activity被筛选出来,由用户进一步选择:
运行效果图:
核心代码流程:
建立第二个Activity的布局,与对应的Activity,在第一个Activity的按钮点击事件中添加一下代码:
Intent it = new Intent();
it.setAction(Intent.ACTION_VIEW);
startActivity(it);
最后在Intent中添加以下代码:
<activity android:name=".SecondActivity"
android:label="第二个Activity">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
接着就可以了,代码很简单!
自定义动作的隐式Intent
代码示例:使用自定义的Action与category来激活另一个Activity
运行效果图:
这里要注意虽然我们自定义了一个category,但是还是要把这个默认的加上,不然会报错的:
在AndroidManifest.xml的第二个activity标签中加入:
<category android:name="android.intent.category.DEFAULT"/>
相关代码下载:
返回Home界面:代码下载
打开浏览器:代码下载
包含预定义动作的隐式Intent:代码下载包含自定义动作的隐式Intent:代码下载
ps:对于系统预定义的一些Action与Category,大家可以按需要自己百度,后续有时间会整理下,写一篇博文!
当然你也可以查看下官方的文档,在sdk-->docs-->reference-->android--->content--->Intent.html中!