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