Only launch an activity in an existing task if activity types match
Activities with FLAG_ACTIVITY_NEW_TASK and FLAG_ACTIVITY_CLEAR_TASK
flags, when sharing the home activity's task, could cause the home
activity to be cleared. Later when home is launched again, a reset
of the task will be triggered each time.
Don't put an activity into a task unless the activity types match.
(This covers both home and recents activities.)
bug: 21880868
Change-Id: Ida26d187a6552914826bf45e537a731b3a15ea70
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java
index e6c8d43..4ac290c 100644
--- a/services/core/java/com/android/server/am/ActivityStack.java
+++ b/services/core/java/com/android/server/am/ActivityStack.java
@@ -542,6 +542,10 @@
if (DEBUG_TASKS) Slog.d(TAG_TASKS, "Skipping " + task + ": mismatch root " + r);
continue;
}
+ if (r.mActivityType != target.mActivityType) {
+ if (DEBUG_TASKS) Slog.d(TAG_TASKS, "Skipping " + task + ": mismatch activity type");
+ continue;
+ }
final Intent taskIntent = task.intent;
final Intent affinityIntent = task.affinityIntent;