From 1afa7845895fb74cfc137ae0579ca2a3a32ab092 Mon Sep 17 00:00:00 2001 From: Li Li Date: Thu, 30 Dec 2021 11:47:31 -0800 Subject: 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 Merged-In: Ie9d8c51b074029dc0b23cf3991f3ab21a556ca17 (cherry picked from commit f6c8eb3e4153779f0629cb2e4b7296354259850b) --- services/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 9da6d528a967..8199d940883a 100644 --- a/services/core/java/com/android/server/am/CachedAppOptimizer.java +++ b/services/core/java/com/android/server/am/CachedAppOptimizer.java @@ -900,7 +900,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); } -- cgit v1.2.3-59-g8ed1b