From 75685f743756e97728366e9bb2c5a70d51cb2f9d Mon Sep 17 00:00:00 2001 From: "lei.peng" Date: Sat, 8 Oct 2016 17:58:37 +0800 Subject: [PATCH] Modify the case in adjustFocus when the mFocusedActivity is null Starting activity failed and the mFocusedActvity become null, consider this condition when adjust focus. Because in this condition, the focus mismatch between ActivityManagerService#mFocusedActivity and InputDispatcher(inputfilnger)#mFocusedApplication, ANR may occur. Test: monkey test 48h with no ANR Change-Id: Id1a2bf0d6ca6530e34443d359fbe2aa6c11b878c --- services/core/java/com/android/server/am/ActivityStack.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index 4ead64b6915bc..eaeb1a76e5806 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -3157,7 +3157,8 @@ final class ActivityStack { } private void adjustFocusedActivityLocked(ActivityRecord r, String reason) { - if (!mStackSupervisor.isFocusedStack(this) || mService.mFocusedActivity != r) { + if (!mStackSupervisor.isFocusedStack(this) || (mService.mFocusedActivity != r + && mService.mFocusedActivity != null)) { return; }