summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/app/ActivityClient.java3
-rw-r--r--services/core/java/com/android/server/wm/ActivityClientController.java4
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();
}