From 9f748c3979349c933ef807a470ab04a317e5ed35 Mon Sep 17 00:00:00 2001 From: yangyankai1 Date: Mon, 18 Jan 2021 20:45:44 +0800 Subject: [PATCH] No need to 'addChild' when start 'FLAG_ACTIVITY_CLEAR_TOP' Activity. Android R refactor Activity launchMode:'FLAG_ACTIVITY_CLEAR_TOP', 'singleTop','singleInstance'. After Android R restructure, the 'addChild' method leads to Activity leaks. No need to 'addChild' in the current Android version anymore. Test: build pass, feature pass. TestCase: Start a Activity twice with flag 'FLAG_ACTIVITY_CLEAR_TOP'. Reproductivity: always. Signed-off-by: yangyankai1 Change-Id: Ia4d5b875a6592b6448af7500626b5a273bd96dc3 --- .../core/java/com/android/server/wm/ActivityStarter.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index b3786212ea720..555fc54186bf3 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -2023,13 +2023,6 @@ class ActivityStarter { final ActivityRecord top = targetTask.performClearTaskForReuseLocked(mStartActivity, mLaunchFlags); - // The above code can remove {@code reusedActivity} from the task, leading to the - // {@code ActivityRecord} removing its reference to the {@code Task}. The task - // reference is needed in the call below to {@link setTargetStackAndMoveToFrontIfNeeded} - if (targetTaskTop.getTask() == null) { - targetTask.addChild(targetTaskTop); - } - if (top != null) { if (top.isRootOfTask()) { // Activity aliases may mean we use different intents for the top activity,