Merge "Fix issue #25727069: Top sleeping activity overrides foreground service"

This commit is contained in:
Vikas Marwaha
2016-05-03 20:50:39 +00:00
committed by Gerrit Code Review

View File

@@ -17747,7 +17747,7 @@ public final class ActivityManagerService extends ActivityManagerNative
app.systemNoUi = false; 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 // Determine the importance of the process, starting with most
// important to least, and assign an appropriate OOM adjustment. // important to least, and assign an appropriate OOM adjustment.
@@ -17762,7 +17762,7 @@ public final class ActivityManagerService extends ActivityManagerNative
schedGroup = Process.THREAD_GROUP_DEFAULT; schedGroup = Process.THREAD_GROUP_DEFAULT;
app.adjType = "top-activity"; app.adjType = "top-activity";
foregroundActivities = true; foregroundActivities = true;
procState = PROCESS_STATE_TOP; procState = PROCESS_STATE_CUR_TOP;
} else if (app.instrumentationClass != null) { } else if (app.instrumentationClass != null) {
// Don't want to kill running instrumentation. // Don't want to kill running instrumentation.
adj = ProcessList.FOREGROUND_APP_ADJ; adj = ProcessList.FOREGROUND_APP_ADJ;
@@ -17815,8 +17815,8 @@ public final class ActivityManagerService extends ActivityManagerNative
adj = ProcessList.VISIBLE_APP_ADJ; adj = ProcessList.VISIBLE_APP_ADJ;
app.adjType = "visible"; app.adjType = "visible";
} }
if (procState > PROCESS_STATE_TOP) { if (procState > PROCESS_STATE_CUR_TOP) {
procState = PROCESS_STATE_TOP; procState = PROCESS_STATE_CUR_TOP;
} }
schedGroup = Process.THREAD_GROUP_DEFAULT; schedGroup = Process.THREAD_GROUP_DEFAULT;
app.cached = false; app.cached = false;
@@ -17828,8 +17828,8 @@ public final class ActivityManagerService extends ActivityManagerNative
adj = ProcessList.PERCEPTIBLE_APP_ADJ; adj = ProcessList.PERCEPTIBLE_APP_ADJ;
app.adjType = "pausing"; app.adjType = "pausing";
} }
if (procState > PROCESS_STATE_TOP) { if (procState > PROCESS_STATE_CUR_TOP) {
procState = PROCESS_STATE_TOP; procState = PROCESS_STATE_CUR_TOP;
} }
schedGroup = Process.THREAD_GROUP_DEFAULT; schedGroup = Process.THREAD_GROUP_DEFAULT;
app.cached = false; 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) { if (app.foregroundServices) {
// The user is aware of this app, so make it visible. // The user is aware of this app, so make it visible.
adj = ProcessList.PERCEPTIBLE_APP_ADJ; adj = ProcessList.PERCEPTIBLE_APP_ADJ;