Intent提供了一种通用的消息系统,它允许在你的应用程序和其他的应用程序间传递Intent来执行动作和产生事件。使用Intent可以激活
Android应用三种类型的核心组件:活动,服务,和广播接收者。
Intent可以划分为显式意图和隐式意图。
显式意图:调用Intent.setComponent()\Intent.setClassName()\Intent.setClass()明确指定了组件名的Intent为显式意图。现时意图明确指定了要激活的组件是哪个组件。
隐式意图:没有明确指定组件名的Intent为隐式意图。Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。
建一个新的应用:
在MainActivity中添加方法:
public void openOtherActivity(View v) {
//(没设数据参数的情况下)只要Intent中的Action和Category都出现在intent-filter中,就能与之匹配,否则匹配失败。
Intent intent = new Intent();//隐式意图激活Activity;
intent.setAction("cn.itcast.zhangxx")
intent.addCategory("cn.itcast.category.java");
intent.setDataAndType(Uri.parse("itcast://www.itcast.cn/liming"),"image/jpeg");
startActivity(intent);
}
新建一个OtherActivity;
在配置文件中配置OtherActivity:
<intent-filter>
<action android:name="cn.itcast.zhangxx"/>
<category android:name="cn.itcast.category.java"/>
<category android:name="android.intent.category.DEFAULT">
<data android:scheme="itcast" android:host="www.itcast.cn" android:path="/liming"/>
<data android:mimeType="image/*"/>//匹配所有图像类型的文件
</intent-filter>