From 6e3d6daa3753be0ce170c1140cddd945e01e0a03 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Fri, 15 Jun 2012 12:05:27 -0700 Subject: [PATCH] Fix issue #6636731: Mariner animation ring gets stuck Weren't cleaning out any ActivityOptions that are still attached to a finishing activity. Bug: 6636731 Change-Id: If0520bbcbf1d4ce19d46ff769918893cefda9c87 --- services/java/com/android/server/am/ActivityRecord.java | 9 ++++++++- services/java/com/android/server/am/ActivityStack.java | 4 +++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/services/java/com/android/server/am/ActivityRecord.java b/services/java/com/android/server/am/ActivityRecord.java index 26c5c3d952fb9..17957d21d70de 100644 --- a/services/java/com/android/server/am/ActivityRecord.java +++ b/services/java/com/android/server/am/ActivityRecord.java @@ -164,6 +164,9 @@ final class ActivityRecord { if (pendingResults != null) { pw.print(prefix); pw.print("pendingResults="); pw.println(pendingResults); } + if (pendingOptions != null) { + pw.print(prefix); pw.print("pendingOptions="); pw.println(pendingOptions); + } if (uriPermissions != null) { if (uriPermissions.readUriPermissions != null) { pw.print(prefix); pw.print("readUriPermissions="); @@ -202,7 +205,7 @@ final class ActivityRecord { if (lastVisibleTime != 0 || waitingVisible || nowVisible) { pw.print(prefix); pw.print("waitingVisible="); pw.print(waitingVisible); pw.print(" nowVisible="); pw.print(nowVisible); - pw.print("lastVisibleTime="); + pw.print(" lastVisibleTime="); TimeUtils.formatDuration(lastVisibleTime, pw); pw.println(""); } if (configDestroy || configChangeFlags != 0) { @@ -453,6 +456,7 @@ final class ActivityRecord { if (task != null && !finishing) { task.numActivities--; } + clearOptionsLocked(); } } @@ -466,6 +470,9 @@ final class ActivityRecord { if (task != null && inHistory) { task.numActivities--; } + if (stopped) { + clearOptionsLocked(); + } } } diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java index 1eef2cf0904e2..e2d6d98b8bd18 100755 --- a/services/java/com/android/server/am/ActivityStack.java +++ b/services/java/com/android/server/am/ActivityStack.java @@ -1055,7 +1055,9 @@ final class ActivityStack { mHandler.removeMessages(STOP_TIMEOUT_MSG, r); r.stopped = true; r.state = ActivityState.STOPPED; - if (!r.finishing) { + if (r.finishing) { + r.clearOptionsLocked(); + } else { if (r.configDestroy) { destroyActivityLocked(r, true, false, "stop-config"); resumeTopActivityLocked(null);