diff options
| author | 2015-11-17 11:14:43 -0800 | |
|---|---|---|
| committer | 2016-05-02 14:09:53 -0700 | |
| commit | 7064c019a72fe47ee2f1e50660adf53a79c4022b (patch) | |
| tree | 2ed0d5a124f708dd7fa1d685920b7cad13fbc7c2 | |
| parent | daf6bdba0eac4abc03afdfe60b7736f3f8bd461e (diff) | |
Fix issue #25727069: Top sleeping activity overrides foreground service
Change-Id: I9a085cd650604f9d6277ad343bf3c3852324cafc
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 128448e9a5e4..b0981bfd782b 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -17747,7 +17747,7 @@ public final class ActivityManagerService extends ActivityManagerNative app.systemNoUi = false; - final int PROCESS_STATE_TOP = mTopProcessState; + final int PROCESS_STATE_CUR_TOP = mTopProcessState; // Determine the importance of the process, starting with most // important to least, and assign an appropriate OOM adjustment. @@ -17762,7 +17762,7 @@ public final class ActivityManagerService extends ActivityManagerNative schedGroup = Process.THREAD_GROUP_DEFAULT; app.adjType = "top-activity"; foregroundActivities = true; - procState = PROCESS_STATE_TOP; + procState = PROCESS_STATE_CUR_TOP; } else if (app.instrumentationClass != null) { // Don't want to kill running instrumentation. adj = ProcessList.FOREGROUND_APP_ADJ; @@ -17815,8 +17815,8 @@ public final class ActivityManagerService extends ActivityManagerNative adj = ProcessList.VISIBLE_APP_ADJ; app.adjType = "visible"; } - if (procState > PROCESS_STATE_TOP) { - procState = PROCESS_STATE_TOP; + if (procState > PROCESS_STATE_CUR_TOP) { + procState = PROCESS_STATE_CUR_TOP; } schedGroup = Process.THREAD_GROUP_DEFAULT; app.cached = false; @@ -17828,8 +17828,8 @@ public final class ActivityManagerService extends ActivityManagerNative adj = ProcessList.PERCEPTIBLE_APP_ADJ; app.adjType = "pausing"; } - if (procState > PROCESS_STATE_TOP) { - procState = PROCESS_STATE_TOP; + if (procState > PROCESS_STATE_CUR_TOP) { + procState = PROCESS_STATE_CUR_TOP; } schedGroup = Process.THREAD_GROUP_DEFAULT; app.cached = false; @@ -17864,7 +17864,8 @@ public final class ActivityManagerService extends ActivityManagerNative } } - if (adj > ProcessList.PERCEPTIBLE_APP_ADJ) { + if (adj > ProcessList.PERCEPTIBLE_APP_ADJ + || procState > ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE) { if (app.foregroundServices) { // The user is aware of this app, so make it visible. adj = ProcessList.PERCEPTIBLE_APP_ADJ; |