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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章