diff options
| -rw-r--r-- | core/java/android/app/ActivityClient.java | 3 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityClientController.java | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/core/java/android/app/ActivityClient.java b/core/java/android/app/ActivityClient.java index 2efdf51612c7..db7ab1a6f379 100644 --- a/core/java/android/app/ActivityClient.java +++ b/core/java/android/app/ActivityClient.java @@ -207,7 +207,8 @@ public class ActivityClient { } /** - * Returns the activity token below in the same task if it belongs to the same process. + * Returns the non-finishing activity token below in the same task if it belongs to the same + * process. */ @Nullable public IBinder getActivityTokenBelow(IBinder activityToken) { diff --git a/services/core/java/com/android/server/wm/ActivityClientController.java b/services/core/java/com/android/server/wm/ActivityClientController.java index 043e2dd07087..cc0db1d12e7b 100644 --- a/services/core/java/com/android/server/wm/ActivityClientController.java +++ b/services/core/java/com/android/server/wm/ActivityClientController.java @@ -554,7 +554,9 @@ class ActivityClientController extends IActivityClientController.Stub { if (ar == null) { return null; } - final ActivityRecord below = ar.getTask().getActivityBelow(ar); + // Exclude finishing activity. + final ActivityRecord below = ar.getTask().getActivity((r) -> !r.finishing, + ar, false /*includeBoundary*/, true /*traverseTopToBottom*/); if (below != null && below.getUid() == ar.getUid()) { return below.appToken.asBinder(); } |