From 9dcedb7f28c784e7b0189353bf49d6f1dd2b7eae Mon Sep 17 00:00:00 2001 From: MOVZX Date: Fri, 2 Jan 2026 22:31:16 +0700 Subject: [PATCH] Fixes crash (race cond) when destroyActivity. some UI stress (or sleep on UI thread) causes a crash from DESTROY_TIMEOUT_MSG. The steps that crash the app are: 1. build two activities ,such as A and B; 2. A start B; 3. B(oncreate) start A use FLAG_ACTIVITY_CLEAR_TOP; 4. B(oncreate) stall UI thread (Thread.sleep, heavy task) 5. crash tring to handleLaunchActivity or handleResumeActivity Bug: 128469605 Test: manual - write an app to jump between two activities, then Thread.sleep(); Change-Id: I4027dfc0cf3878c12964cabee54ad82bc108d79c Signed-off-by: Pranav Vashi Signed-off-by: MOVZX --- core/java/android/app/ActivityThread.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index ec5b5dd7e6d16..f0ff0bf174d2a 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -4493,7 +4493,7 @@ public final class ActivityThread extends ClientTransactionHandler return; } Configuration[] configurations = r.activity.getResources().getSizeConfigurations(); - if (configurations == null) { + if (configurations == null || r.activity.mFinished) { return; } r.mSizeConfigurations = new SizeConfigurationBuckets(configurations);