From f6c8eb3e4153779f0629cb2e4b7296354259850b Mon Sep 17 00:00:00 2001 From: Li Li Date: Thu, 30 Dec 2021 11:47:31 -0800 Subject: [PATCH] Reset app freezer timeout for broadcast messages The current freezer code will unfreeze a frozen app when it receives a registered broadcast. That grants the app a grace period to process the message. However, if the app is not already frozen, there isn't such an extra grace period. It's possible the app might be frozen immediately after receiving the broadcast. This patch ensures apps always get that extra grace period to process the incoming broadcast messages. Bug: 172001574 Bug: 189609004 Test: cached apps won't be frozen until the grace period expires. Change-Id: Ie9d8c51b074029dc0b23cf3991f3ab21a556ca17 --- .../core/java/com/android/server/am/CachedAppOptimizer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/am/CachedAppOptimizer.java b/services/core/java/com/android/server/am/CachedAppOptimizer.java index 0c94fbbcf74f1..c55bbe8e971bc 100644 --- a/services/core/java/com/android/server/am/CachedAppOptimizer.java +++ b/services/core/java/com/android/server/am/CachedAppOptimizer.java @@ -920,7 +920,7 @@ public final class CachedAppOptimizer { void unfreezeTemporarily(ProcessRecord app) { if (mUseFreezer) { synchronized (mProcLock) { - if (app.mOptRecord.isFrozen()) { + if (app.mOptRecord.isFrozen() || app.mOptRecord.isPendingFreeze()) { unfreezeAppLSP(app); freezeAppAsyncLSP(app); }