Android 有两个活动作为入口点的应用

Android app with two activities as enter points

应用程序包含两个活动作为清单中描述的输入点。

    <activity
        android:name=".ui.screen.main.MainActivity"
        android:icon="@mipmap/ic_tracker_launcher" >
        <intent-filter android:label="@string/app_name" >
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".ui.screen.main.MapEnterActivity"
        android:icon="@mipmap/ic_watcher_launcher" >
        <intent-filter android:label="@string/app_name_watcher" >
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

因此我们在移动桌面上有两个图标。

我需要解决的问题是当其中一个图标启动相应 activity 并且用户按下“后退”按钮(应用程序未被终止)以按下另一个图标并启动另一个 activity - 他不能't 运行 另一个 activity 通过其图标,第一个再次出现。所以它应该在 运行 另一个 activity 正确之前被杀死。

是否可以通过其图标 运行 每个 activity 而无需手动终止应用程序(需要让用户感到舒适)以及如何实现这一点?

非常感谢您的任何建议。

在每个 activity

上添加 android:taskAffinity
 <activity
    android:taskAffinity="com.example.MainActivity"
    android:name=".ui.screen.main.MainActivity"
    android:icon="@mipmap/ic_tracker_launcher" >
    <intent-filter android:label="@string/app_name" >
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity
    android:taskAffinity="com.example.MapEnterActivity"
    android:name=".ui.screen.main.MapEnterActivity"
    android:icon="@mipmap/ic_watcher_launcher" >
    <intent-filter android:label="@string/app_name_watcher" >
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>