2 つのランチャー アイコンと 2 つの異なるアクティビティを備えたアプリがあります。マニフェスト ファイルは次のようになります。
....
<activity
android:name=".MyActivity"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:taskAffinity="my.package.com.MyActivity">
<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
android:name=".MySettings"
android:label="@string/settings"
android:icon="@mipmap/ic_launcher"
android:taskAffinity="my.package.com.MySettings">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
....
MyActivityインストール後に開くデフォルトの画面にしたいので、使用し.category.DEFAULTました。
action.MAINとcategory.LAUNCHERは、2 つの個別のランチャー アイコンを表示します (1 はMyActivity、1 はMySettings)。
問題:を開くMyActivityと、MySettings画面も開いてしまいます。各ランチャー アイコンで、対応するアクティビティのみを開きます。問題を解決するために各アクティビティに使用taskAffinityしましたが、機能しませんでした。動作させるには、私の場合はできないtaskAffinityフラグでアクティビティを開始する必要があると思います(両方ともアクティビティを起動します)。Intent.FLAG_ACTIVITY_NEW_TASK
私も使用しようとしましandroid:launchMode="singleTask"たが、どちらも機能しませんでした。
各ランチャー アイコンを作成してその Activity のみを開くにはどうすればよいですか?
更新:申し訳ありませんが、MyActivity開いていないことに気付きMySettingsました。MyActivityには UI がなかったため、 のような空白の画面が表示されましたMySettings。taskAffinity正しく動作します。UIを非表示にするために追加android:theme="@android:style/Theme.NoDisplay"しました。MyActivity