intent的两种方式
- 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的。
- 隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间。x显示intent
-
显式意图我们前面已经提到,形如:
Intent intent = new Intent();
intent.setClass(this,Other.class);//此句表示显式意图,因为明确设置激活对象为Other类
startActivity(intent);
隐式intent(别的应用程序可以通过隐式调用activity,但可以再activity配置文件中设置exproted=false.来限制别的应用不可以调用) -
我们在编写需要被隐式调用的界面的清单文件时,会指定一个Intent Filter(意图过滤器),它是用来匹配隐式Intent的,当一个意图对象被一个意图过滤器进行匹配测试时,会有三个方面会被参考到:
- 动作(action)
- 数据(data)
- 类别(catagory)
- <action android:name="com.xiazdong.action" /> //命名规则。包名。android。action。类名
- <category android:name="android.intent.category.DEFAULT" /> //表示默认。默认为activity
- <category android:name="com.xiazdong.category" />
- <data android:host="www.xiazdong.com" android:scheme="xiazdong" android:mimeType="text/*"/>