summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dianne Hackborn <hackbod@google.com> 2015-11-18 02:05:30 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2015-11-18 02:05:30 +0000
commitcc2925c45b1f9475ebb74ddfef29687e2473f10a (patch)
tree4af77ff646a05f21842f8979253a4f1d6816cb44
parent28d56151474bb97093a4bae482f7d8752030d8fa (diff)
parent3ea71cf2635bcd63b7d8f7d68be89e3bff90dc78 (diff)
Merge "Fix issue #25727069: Top sleeping activity overrides foreground service"
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java15
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 025126ff6afd..6e6bfb791ae7 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -17969,7 +17969,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.
@@ -17984,7 +17984,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;
@@ -18038,8 +18038,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;
@@ -18057,8 +18057,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;
@@ -18096,7 +18096,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;