从主屏幕启动 activity 两次时,TaskStackBuilder 无法正常工作
TaskStackBuilder not working correctly when launch activity twice from home screen
我有 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));
场景:
点击通知正确打开ContactActivity
按主页按钮。
从主屏幕点击我的启动器,在选项卡 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);
那么它对我有用。
我有 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));
场景:
点击通知正确打开ContactActivity
按主页按钮。
从主屏幕点击我的启动器,在选项卡 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);
那么它对我有用。