diff options
| author | Andrii Kulian <akulian@google.com> | 2016-03-16 13:44:56 -0700 |
|---|---|---|
| committer | Andrii Kulian <akulian@google.com> | 2016-03-16 23:24:27 -0700 |
| commit | 58178f2fe4fb2fd2dba0504acff35f8ecc2e495c (patch) | |
| tree | 6160656510dba2d35b7a93a9f4a6fa2e951b4373 /core/java | |
| parent | 794f70f1728123608a2bcbf2a508b31b79a931b2 (diff) | |
Add additional logging for incorrect activity stop
Print ActivityClientRecord state when ActivityThread#performStopActivityInner
is called for already stopped activity.
Bug: 25267624
Change-Id: I2b044e42d0188ef9eaf15422b6a05617ade802e2
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/app/Activity.java | 2 | ||||
| -rw-r--r-- | core/java/android/app/ActivityThread.java | 30 |
2 files changed, 30 insertions, 2 deletions
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 6b67b959064e..772dc9c72ecf 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -744,7 +744,7 @@ public class Activity extends ContextThemeWrapper Activity mParent; boolean mCalled; /*package*/ boolean mResumed; - private boolean mStopped; + /*package*/ boolean mStopped; boolean mFinished; boolean mStartedActivity; private boolean mDestroyed; diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 060ac5e578e4..93c668d10f15 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -379,6 +379,33 @@ public final class ActivityThread { ? "no component name" : componentName.toShortString()) + "}"; } + + public String getStateString() { + StringBuilder sb = new StringBuilder(); + sb.append("ActivityClientRecord{"); + sb.append("paused=").append(paused); + sb.append(", stopped=").append(stopped); + sb.append(", hideForNow=").append(hideForNow); + sb.append(", startsNotResumed=").append(startsNotResumed); + sb.append(", isForward=").append(isForward); + sb.append(", pendingConfigChanges=").append(pendingConfigChanges); + sb.append(", onlyLocalRequest=").append(onlyLocalRequest); + sb.append(", preserveWindow=").append(mPreserveWindow); + if (activity != null) { + sb.append(", Activity{"); + sb.append("resumed=").append(activity.mResumed); + sb.append(", stopped=").append(activity.mStopped); + sb.append(", finished=").append(activity.isFinishing()); + sb.append(", destroyed=").append(activity.isDestroyed()); + sb.append(", startedActivity=").append(activity.mStartedActivity); + sb.append(", temporaryPause=").append(activity.mTemporaryPause); + sb.append(", changingConfigurations=").append(activity.mChangingConfigurations); + sb.append(", visibleBehind=").append(activity.mVisibleBehind); + sb.append("}"); + } + sb.append("}"); + return sb.toString(); + } } final class ProviderClientRecord { @@ -3752,9 +3779,10 @@ public final class ActivityThread { return; } RuntimeException e = new RuntimeException( - "Performing stop of activity that is not resumed: " + "Performing stop of activity that is already stopped: " + r.intent.getComponent().toShortString()); Slog.e(TAG, e.getMessage(), e); + Slog.e(TAG, r.getStateString()); } if (info != null) { |
