diff options
| author | 2016-05-06 12:53:25 -0700 | |
|---|---|---|
| committer | 2016-05-06 13:18:29 -0700 | |
| commit | f9949d55c3e23ddbe41012696213e3d38f1d6b32 (patch) | |
| tree | 5db6838c4fa432677157621b5b2015260b2af9f3 | |
| parent | 3a3fb73c753efb2114693b1943246bc6c47f9470 (diff) | |
Fix onStop not called when activity is under translucent
Activity was not stopped when device went to sleep if it was covered by
another translucent activity. The issue appeared after ag/864253 which
disabled stopping for visible activities.
Bug: 28191555
Change-Id: I39f0c5579ee3e5a16db888c72ace5dc43aa307bd
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityStack.java | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index 009c9a8caa55..442a40e938e0 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -1008,13 +1008,14 @@ final class ActivityStack { void goToSleep() { ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS); - // Make sure any stopped but visible activities are now sleeping. + // Make sure any paused or stopped but visible activities are now sleeping. // This ensures that the activity's onStop() is called. for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { final ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities; for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { final ActivityRecord r = activities.get(activityNdx); - if (r.state == ActivityState.STOPPING || r.state == ActivityState.STOPPED) { + if (r.state == ActivityState.STOPPING || r.state == ActivityState.STOPPED + || r.state == ActivityState.PAUSED || r.state == ActivityState.PAUSING) { r.setSleeping(true); } } |