我们经常看到这种现象,比如在图库中想要播放一个视频,点击视频的时候,会出现个列表哦,让你选用哪个软件来播放视频。
隐示意图相关知识
相比于显式Intent,隐式Intent则含蓄了许多,它并不明确指出我们想要启动哪一个活动,而是指定了一系列更为抽象的action 和category 等信息,然后交由系统去分析这个Intent,并帮我们找出合适的活动去启动
- 通过在 标签下配置 的内容,可以指定当前活动能够响应的action 和category
- 标签则包含了一些附加信息,更精确地指明了当前的活动能够响应的Intent中还可能带有的category 。只有 和 中的内容同时能够匹配上Intent中指定的action 和category时,这个活动才能响应该Intent。
- 每个Intent中只能指定一个action ,但却能指定多个category 。
- 只有 标签中指定的内容和Intent中携带的Data完全一致时,当前活动才能够响应该Intent。
下面来看下例子
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
结果:会调用系统浏览器打开百度页面
那么?如果我们的activity怎样进行配置呢??
新建个activity,并在Manifest中进行配置
<activity android:name=".WebActivity">
<intent-filter tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http" />
</intent-filter>
</activity>
会发现出现个列标,让我们选择用哪个activity来打开。