Android activity-alias 多入口配置

原创 2015年07月11日 10:27:02

       以前装应用的时候有些应用会在桌面上生成两个图标,这两个图标有些是同一个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


相关文章推荐

AndroidManifest.xml文件详解(activity-alias)

语法(SYNTAX): android:enabled=["true" | "false"]                 android:exported=["true" | "f...

Android5.0 Settings各个子模块跳转和布局实现

前言今天要很任性的研究一下Android5.0中Settings子模块的跳转实现。Settings应用的Launcher类我们首先看一下Settings应用的Launcher类。查看package/a...

android <activity-alias/>的用法,是否让你想起了什么

今天小猴子的内心是崩溃的,感觉很无助,就学习点新知识... ******************************************* 参考自博主:http://blog.csdn.n...

activity-alias的使用

activity-alias是android里为了重复使用Activity而设计的。当在Activity的onCreate()方法里,执行getIntent().getComponent().getC...

Android <activity-alias> 的用法研究

1. 问题 最近在开发公司App的过程中有一个需求:需要改变HomeActivity (launcher 的入口) 的名称为StartupActivity,先不要问为什么会有这么脑残的需求,反正就是...

activity-alias详解及应用

activity-alias标签元素众所周知,AndroidManifest是一个xml文件,它包含很多标签元素,如application、activity、receiver等,其中有一个叫做acti...

一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成

http://blog.csdn.net/black0591/article/details/8264168 需求总是一个接一个。 missed call需要一个单独的图标,点击进入,而m...
  • jdsjlzx
  • jdsjlzx
  • 2013年01月21日 09:38
  • 9616

Acitivity子类AliasActivity简介和使用

1.AliasActivity的简介 A

配置activity-alias别名,更改app图标和名字

1、通过配置activity-alias别名,将多个别名指向同一个Activity,该Activity是包含了android.intent.action.MAIN和android.intent.cat...

Android 一个apk多个ICON执行入口

方法一:使用Activity的属性process,不同的Activity是运行在不同的进程中 一个工程对应一个AndroidManifest.xml文件,这个文件中包含有该项目的一些设置,如权限、S...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android activity-alias 多入口配置
举报原因:
原因补充:

(最多只允许输入30个字)