最近改了个隐式app 拉起,发动图标也有不同的玩法
0 个发动图标
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.BROWSABLE" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="app"
android:path="/"
android:port="8080"
android:scheme="lb">
</data>
</intent-filter>
这里是对承受一切隐式拉起,这个是告知系统app 发动不需要用户手动拉起,是为了被代码或许其他中转站调用,所以不需要用户手动拉起,天然就不必再显现图标
1个发动图标
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
LAUNCHER 是决定是不是要显现在程序列表里,默认为主动唤起,也是Android 标准发动形式,会正常在手机的界面显现
2 个发动图标
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity android:name="com.camera.demo.1Activity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.camera.demo.2Activity"
android:icon="@mipmap/ic_launcher" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
上面说了android.intent.category.LAUNCHER 为是否显现在应用列表内,所以我们装备多个LAUNCHER,就会有多个图标显现在手机列表内
intent-filter 相关说明
承受页面隐式跳转的过滤器,
action
有必要的包括,界说一些操作.android.intent.action.MAIN/android.intent.action.WEB_SEARCH
category
一个字符串, 包括了处理该Intent的组件的品种信息, 起着对action的补充说明作用
data
要指定承受的 Intent 数据,Intent 过滤器既能够不声明任何<data>
元素,也能够声明多个此类元素,如下例所示:
<intent-filter>
<data android:mimeType="video/mpeg" android:scheme="http" ... />
<data android:mimeType="audio/mpeg" android:scheme="http" ... />
...
</intent-filter>
每个<data>
元素均可指定 URI 结构和数据类型(MIME 媒体类型)。URI 的每个部分都是一个单独的特点:scheme
、host
、port
和path
:
<scheme>://<host>:<port>/<path>
下例所示为这些特点的可能值:
content://com.example.project:200/folder/subfolder/etc
在此 URI 中,架构是content
,主机是com.example.project
,端口是200
,途径是folder/subfolder/etc
。
在<data>
元素中,上述每个特点均为可选,但存在线性依靠关系:
- 假如未指定架构,则会疏忽主机。
- 假如未指定主机,则会疏忽端口。
- 假如未指定架构和主机,则会疏忽途径。
将 Intent 中的 URI 与过滤器中的 URI 标准进行比较时,它仅与过滤器中包括的部分 URI 进行比较。例如:
- 假如过滤器仅指定架构,则具有该架构的一切 URI 均与该过滤器匹配。
- 假如过滤器指定架构和权限,但未指定途径,则具有相同架构和权限的一切 URI 都会经过过滤器,不管其途径如何均是如此。
- 假如过滤器指定架构、权限和途径,则仅具有相同架构、权限和途径的 URI 才会经过过滤器。
最后贴张LAUNCHER 的原理图