Check for current procState before demoting it.

Otherwise, when adj value is set to CACHED_APP_MIN_ADJ(900), AppFreezer
will freeze the process.

Bug: 273519603
Test: presubmit and b/273519603.
Change-Id: Ia554aabd07ce9635b77319e62429e3e50659a970
This commit is contained in:
Hui Yu
2023-03-23 00:19:36 +00:00
parent 0db4c8ea84
commit fbc0b2c92d

View File

@@ -2048,8 +2048,9 @@ public class OomAdjuster {
// around switching between two apps. However, we don't want to keep the
// process in this privileged state indefinitely. Eventually, allow the
// app to be demoted to cached.
if ((state.getSetProcState() == PROCESS_STATE_LAST_ACTIVITY
&& (state.getLastStateTime() + mConstants.MAX_PREVIOUS_TIME) < now)) {
if (procState >= PROCESS_STATE_LAST_ACTIVITY
&& state.getSetProcState() == PROCESS_STATE_LAST_ACTIVITY
&& (state.getLastStateTime() + mConstants.MAX_PREVIOUS_TIME) < now) {
procState = PROCESS_STATE_LAST_ACTIVITY;
schedGroup = SCHED_GROUP_BACKGROUND;
state.setAdjType("previous-expired");