From 7f7bdb2712d4988efa5e914c0b54271752b49407 Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Tue, 22 Apr 2014 19:57:19 -0700 Subject: [PATCH] Force ActivityView activities to start in new task Activities were associating with existing tasks when their components matched. This was causing them to be launched into existing stacks rather than into their ActivityView. Adding these flags forces the launches to be in unique tasks on their ActivityView. Fixes bug 14252286. Change-Id: I9ba65a4a2da198435748c0a17396d3f7f8c75f5e --- .../java/com/android/server/am/ActivityStackSupervisor.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index 311ccb3a0b785..0b6f7d155d179 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -2937,6 +2937,8 @@ public final class ActivityStackSupervisor implements DisplayListener { } class ActivityContainer extends android.app.IActivityContainer.Stub { + final static int FORCE_NEW_TASK_FLAGS = Intent.FLAG_ACTIVITY_NEW_TASK | + Intent.FLAG_ACTIVITY_MULTIPLE_TASK; final int mStackId; IActivityContainerCallback mCallback = null; final ActivityStack mStack; @@ -3033,6 +3035,7 @@ public final class ActivityStackSupervisor implements DisplayListener { int userId = mService.handleIncomingUser(Binder.getCallingPid(), Binder.getCallingUid(), mCurrentUser, false, true, "ActivityContainer", null); // TODO: Switch to user app stacks here. + intent.addFlags(FORCE_NEW_TASK_FLAGS); String mimeType = intent.getType(); if (mimeType == null && intent.getData() != null && "content".equals(intent.getData().getScheme())) { @@ -3051,7 +3054,7 @@ public final class ActivityStackSupervisor implements DisplayListener { } return ((PendingIntentRecord)intentSender).sendInner(0, null, null, null, null, null, - null, 0, 0, 0, null, this); + null, 0, FORCE_NEW_TASK_FLAGS, FORCE_NEW_TASK_FLAGS, null, this); } @Override