以前裝應用的時候有些應用會在桌面上生成兩個圖標,這兩個圖標有些是同一個Activity的入口,有些是另外一個Activity的入口,這樣的效果是怎麼實現的呢?在看Android原生DeskClock程序的時候看到了這個功能的實現.使用的是activity-alias:
1.語法格式
<activity-alias android:enabled=["true" | "false"]
android:exported=["true" | "false"]
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:permission="string"
android:targetActivity="string" >
. . .
</activity-alias>
2.DeskClock中應用
從下面的配置可以看出這是同一個activity(DeskClock)的兩個入口,並且這兩個入口的名字圖標都一樣,這樣做有什麼意義呢?可以看到activity-alias中標記了一個名爲android.intent.category.DESK_DOCK的category,這個是在android設備插上桌面Dock底座的時候纔會觸發alias入口.
<activity android:name="DeskClock"
android:label="@string/app_label"
android:theme="@style/DeskClock"
android:icon="@mipmap/ic_launcher_alarmclock"
android:launchMode="singleTask"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity-alias android:name="DockClock"
android:targetActivity="DeskClock"
android:label="@string/app_label"
android:theme="@style/DeskClock"
android:icon="@mipmap/ic_launcher_alarmclock"
android:launchMode="singleTask"
android:enabled="@bool/config_dockAppEnabled"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.DESK_DOCK" />
</intent-filter>
</activity-alias>
activity-alias通過指定targetActivity來決定入口相連接的activity,給該程序更改一個不同的label(ClockAlias)和icon(菊花)並且替換掉Dock底座的category,如下部代碼配置所示.
<activity-alias android:name="DockClock"
android:targetActivity="DeskClock"
android:label="@string/app_second_label"
android:theme="@style/DeskClock"
android:icon="@mipmap/entrance"
android:launchMode="singleTask"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
這樣修改完成配置之後就可以實現在android設備上雙入口圖標了,點擊兩個圖標都可以進入到DeskClock的程序裏面,具體效果如下圖所示
轉載請註明出處:http://blog.csdn.net/l2show/article/details/46828391