diff options
| author | 2014-10-01 15:02:24 +0000 | |
|---|---|---|
| committer | 2014-10-01 15:02:24 +0000 | |
| commit | 6cda1b3fd20443e2114910ed04fa4b53449ae4f3 (patch) | |
| tree | f7e67b08f817f36ee56d170a48bf5fcaee58491b | |
| parent | d164460e692762226560af77b6b360ae83335b8f (diff) | |
| parent | 6b491b64ba7200a85199452b6a7f99c777105f22 (diff) | |
am 6b491b64: Merge "Invalid accessibility state if UI test process crashes in a bad time." into lmp-dev
* commit '6b491b64ba7200a85199452b6a7f99c777105f22':
Invalid accessibility state if UI test process crashes in a bad time.
| -rw-r--r-- | services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index 1253bc7c7453..cc1742210893 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -2004,7 +2004,15 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { } else { userState.mBindingServices.add(mComponentName); mService = userState.mUiAutomationServiceClient.asBinder(); - onServiceConnected(mComponentName, mService); + mMainHandler.post(new Runnable() { + @Override + public void run() { + // Simulate asynchronous connection since in onServiceConnected + // we may modify the state data in case of an error but bind is + // called while iterating over the data and bad things can happen. + onServiceConnected(mComponentName, mService); + } + }); userState.mUiAutomationService = this; } return false; |