activity-alias是android里為了重復使用Activity而設計的。
當在Activity的onCreate()方法里,執行getIntent().getComponent().getClassName();得到的可能不是這個Activity的名字,有可能是別名的名字,例如:在AndroidMenifest.xml有如下配置:
<activity android:name=".TestAndroid" android:icon="@drawable/ic_menu_mark"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
<activity-alias android:name="TestAndroidAlias" android:targetActivity="TestAndroid" android:label="testAndroidlias" android:icon="@drawable/ic_launcher_phone"> <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>
這個應用會在桌面上建兩個進入點,即建兩個可以進入TestAndroid這個Activity的快捷圖標。這時getIntent().getComponent().getClassName() 得到的名字就不一樣,一個是com.test.TestAndroid,一個是com.test.TestAndroidAlias。