From f759a58e3b3145da979a2446c1cf9a467eeee9bb Mon Sep 17 00:00:00 2001 From: Hui Yu Date: Mon, 27 Apr 2020 14:31:04 -0700 Subject: [PATCH] If didSomething condition is reversed. updateOomAdjLocked() should be called when didSomething is true. When startActivity, WindowManager post a runnable to DisplayThread and ActivityManagerService to update UidRecord's proc state, because the thread switch, sometimes proc state does not get updated on time. This fix will make updateOomAdjLocked() is called immediately after startActivity. Bug: 155110902 Test: regression test atest cts/tests/app/src/android/app/cts/ActivityManagerProcessStateTest.java Change-Id: Icdb93fbd25c3c281c7dfdaafe190765630e7b64e --- .../core/java/com/android/server/am/ActivityManagerService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 3fdf541566a55..008f6459bf810 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -5364,7 +5364,7 @@ public class ActivityManagerService extends IActivityManager.Stub return false; } - if (!didSomething) { + if (didSomething) { updateOomAdjLocked(app, OomAdjuster.OOM_ADJ_REASON_PROCESS_BEGIN); checkTime(startTime, "attachApplicationLocked: after updateOomAdjLocked"); }