標籤:android deskclock android多入口 activity-alias
以前裝應用的時候有些應用會在案頭上產生兩個表徵圖,這兩個表徵圖有些是同一個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
Android activity-alias 多入口配置