显示意图 与 隐式意图 对比
显示意图不能激活多个组件,只能激活一个组件
隐式意图能激活多个组件
显示意图只能在自身应用激活,不能激活其他应用
隐士意图能在自身应用激活,也能激活其他应用
每个应用程序之所以在桌面能显示应用图标,是因为在安装应用的时候,系统会解析以下暴露的节点
点击桌面应用的图标,之所以能启动,是因为系统是采用隐式意图激活:激活的action是:android:name="android.intent.action.MAIN"
每个应用程序都会有,以下隐式意图的暴露:
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
所以以下代码,可以同时激活,所有的应用程序:
/** * 激活所有的应用程序 * @param view */ public void tumpAllAPP(View view) { Intent intent = new Intent(); // intent.setAction(Intent.ACTION_MAIN); intent.setAction("android.intent.action.MAIN"); // 在这里为什么不需要设置:category android:name="android.intent.category.DEFAULT",因为在startActivity会自动添加 startActivity(intent); }
隐式意图激活所有应用程序的效果:
隐式意图激活的时候,系统会搜索所有action标识,当发现有多个相同的action标识的时候,就会提示用户,选择哪一个应用程序