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

时间:2016-06-06 09:53:17

标签: android android-intent android-manifest android-notifications taskstackbuilder

我有2项活动

  • MainActivity - 有4个标签

  • ContactActivity

我在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。

  4. 现在发生的事情是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>
    

1 个答案:

答案 0 :(得分:0)

我添加到subActivity标志:

 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);

然后它为我工作。