以前装应用的时候有些应用会在桌面上生成两个图标,这两个图标有些是同一个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的程序里面,具体效果如下图所示

Android activity-alias 多入口配置_第1张图片


转载请注明出处:http://blog.csdn.net/l2show/article/details/46828391


更多相关文章

  1. Android 中获取未安装APK的 图标 || icon
  2. Android 1.5 自带的图标一览表
  3. Android桌面隐藏图标
  4. [置顶] Android ViewPager+Fragment超高仿微信主界面(带底部图标
  5. 很好的资源学习入口_android
  6. Android开发小技巧:怎样在 textview 前面加上一个小图标。
  7. android实现标题栏、状态栏图标文字颜色及背景动态变化

随机推荐

  1. android 监听sd卡
  2. Android大厂一面面试:记录第一次跳槽经历
  3. drawerLayout简单用法
  4. Android(安卓)ViewPager 下 ListView 不
  5. android 自定义边框
  6. android 描边
  7. android 画三角形
  8. wzplayer for android正式支持OpenSL ES
  9. Android:ADT-22.3.0
  10. android m classpath