从主屏幕启动 activity 两次时,TaskStackBuilder 无法正常工作

TaskStackBuilder not working correctly when launch activity twice from home screen

我有 2 个活动

我在 TaskStackBuilder 中做了两个意图,所以当我点击通知时 ContactActivity 将首先出现,然后 MainActivity 出现。

TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);

stackBuilder.addNextIntent(getIntentToMainActivity(context)); // Added extras for tab 1.

final Intent intent = ContactActivity.createIntent(context, 0, phone, false);
intent.putExtra(EXTRA_MISSED_CALL_NOTIFICATION_CLICKED, true);
stackBuilder.addNextIntent(intent);

notificationBuilder.setContentIntent(stackBuilder.getPendingIntent(1000, FLAG_UPDATE_CURRENT));

场景:

  1. 点击通知正确打开ContactActivity

  2. 按主页按钮。

  3. 从主屏幕点击我的启动器,在选项卡 2 中打开 MainActivity。

现在发生的事情是,MainActivity 打开时使用选项卡 1,其中包含从 stackBuilder(可能来自 stackBuilder)设置的选项卡 1 的附加项。

清单 MainActivity:

<activity
    android:name=".MainActivity"
    android:clearTaskOnLaunch="true"
    android:finishOnTaskLaunch="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/contactlist_app_name"
    android:launchMode="singleTask"
    android:screenOrientation="user">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

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

我在subActivity中添加了标志:

 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);

那么它对我有用。