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
This commit is contained in:
Chong Zhang
2015-08-05 14:21:36 -07:00
parent 2e4cc9f453
commit b546f7e0d8

View File

@@ -542,6 +542,10 @@ final class ActivityStack {
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;