activity-alias属性の使用
アクティビティ エイリアス属性は、AndroidManifest.xml ファイルで既存のアクティビティ コンポーネントの代わりにエイリアスを指定するための属性です。次のような状況で使用できます。
- 既存のアクティビティの属性を変更するには、activity-aliasを使用してアクティビティのラベル、アイコン、またはテーマなどを変更できます。
例:
<activity-alias
android:name=".MainActivityAlias"
android:targetActivity=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
- 活動のエイリアスを作成する:activity-aliasを使用すると、既存の活動のエイリアスを作成して、そのエイリアスを使用するコンポーネントがその活動にアクセスできるようになります。
彼女は私にとても大切な存在です。→ 彼女は私にとって非常に重要な存在です。
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity-alias
android:name=".MainActivityAlias"
android:targetActivity=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
</intent-filter>
</activity-alias>
上記の例では、ブラウザを経由してhttpリンクを開くと、システムはMainActivityAliasに一致し、MainActivityを起動します。
activity-aliasは別名であり、それ自体はアクティビティコンポーネントではないため、独自のライフサイクルを持たず、独自のIntentを受け取ることもできません。単なる代理であり、intent-filterを介してtargetActivityという指定されたアクティビティコンポーネントにフォワーディングされます。