From b8c5876dc020959e133c0c7975d8ef65e4d47a27 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Wed, 20 Apr 2016 17:58:29 -0700 Subject: [PATCH] Keep stack from mReuseTask When we launch an activity with CLEAR_TOP and NEW_TASK, we clear all the activities in that task but then we don't reuse the stack, which can lead to weirdness. To fix this, we need to keep the target stack in that case. Bug: 28000613 Change-Id: If85ade73b1036e8a7c0eda418d9f39e8596b8b16 --- .../core/java/com/android/server/am/ActivityStarter.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/services/core/java/com/android/server/am/ActivityStarter.java b/services/core/java/com/android/server/am/ActivityStarter.java index 4da69760a970a..4d24a8b7dc97f 100644 --- a/services/core/java/com/android/server/am/ActivityStarter.java +++ b/services/core/java/com/android/server/am/ActivityStarter.java @@ -1853,6 +1853,12 @@ class ActivityStarter { private ActivityStack getLaunchStack(ActivityRecord r, int launchFlags, TaskRecord task, ActivityOptions aOptions) { + + // We are reusing a task, keep the stack! + if (mReuseTask != null) { + return mReuseTask.stack; + } + final int launchStackId = (aOptions != null) ? aOptions.getLaunchStackId() : INVALID_STACK_ID;