Manifest中的<activity-alias>的使用

本文介绍如何通过activity-alias在Android中实现Activity的复用。通过在AndroidManifest.xml中配置activity-alias元素,可以为同一Activity创建多个启动入口,从而在不同场景下重复利用同一个Activity。

activity-alias是android里为了重复使用Activity而设计的。

当在Activity的onCreate()方法里,执行getIntent().getComponent().getClassName();得到的可能不是这个Activity的名字,有可能是别名的名字,例如:在AndroidMenifest.xml有如下配置:

 

[xhtml]   view plain copy
  1. < activity    
  2.     android:name = ".TestAndroid"   
  3.     android:icon = "@drawable/ic_menu_mark" >   
  4.         < intent-filter >   
  5.             < action   android:name = "android.intent.action.MAIN"   />   
  6.             < category   android:name = "android.intent.category.LAUNCHER"   />   
  7.         </ intent-filter >   
  8. </ activity >   

 

 

[xhtml]   view plain copy
  1. < activity-alias    
  2.     android:name = "TestAndroidAlias"   
  3.     android:targetActivity = "TestAndroid"   
  4.     android:label = "testAndroidlias"   
  5.     android:icon = "@drawable/ic_launcher_phone" >   
  6.         < intent-filter >   
  7.             < action   android:name = "android.intent.action.MAIN"   />   
  8.             < category   android:name = "android.intent.category.DEFAULT"   />   
  9.             < category   android:name = "android.intent.category.LAUNCHER"   />   
  10.         </ intent-filter >   
  11. </ activity-alias >   

 

 

这个应用会在桌面上建两个进入点,即建两个可以进入TestAndroid这个Activity的快捷图标。这时getIntent().getComponent().getClassName() 得到的名字就不一样,一个是com.test.TestAndroid,一个是com.test.TestAndroidAlias。

一步步来,我有点蒙。我的AndroidManifest.xml代码如下:<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.example.bus"> <!-- 获取精确位置(GPS + 网络) --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 获取粗略位置 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 请求后台定位权限 --> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <!-- 访问网络状态 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 读取设备状态(用于生成设备标识) --> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 使用 GPS --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <application android:name=".MyApplication" android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.Bus"> <!-- 高德地图 API Key --> <meta-data android:name="com.amap.api.v2.apikey" android:value="a487b8aa9be4ecdcb101a04a9eecff8a" /> <activity android:name=".SearchResultActivity" /> <activity android:name=".RoutePlanActivity" /> <activity android:name=".AboutActivity" android:exported="false" android:parentActivityName=".MainActivity" /> <activity android:name=".SurveyActivity" android:label="用户调研" android:parentActivityName=".MainActivity"> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity" /> </activity> <activity android:name=".MainActivity" android:exported="true" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
11-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值