我从我的crashlytics中得到了以下的ANR,但我不完全理解是什么原因造成的。根据
this post
它不应该导致ANR。我的XML文件中确实有
android:canRetrieveWindowContent="true"
。
撞车技术。
main (timed waiting): tid=1 systid=4160
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:442)
at android.view.accessibility.AccessibilityInteractionClient.waitForResultTimedLocked(AccessibilityInteractionClient.java:896)
at android.view.accessibility.AccessibilityInteractionClient.getFindAccessibilityNodeInfosResultAndClear(AccessibilityInteractionClient.java:791)
at android.view.accessibility.AccessibilityInteractionClient.findAccessibilityNodeInfoByAccessibilityId(AccessibilityInteractionClient.java:454)
at android.view.accessibility.AccessibilityInteractionClient.getRootInActiveWindow(AccessibilityInteractionClient.java:223)
at android.accessibilityservice.AccessibilityService.getRootInActiveWindow(AccessibilityService.java:924)
at com.myapp.services.Accessibility.onAccessibilityEvent(Accessibility.java:215)
at android.accessibilityservice.AccessibilityService$2.onAccessibilityEvent(AccessibilityService.java:2096)
at android.accessibilityservice.AccessibilityService$IAccessibilityServiceClientWrapper.executeMessage(AccessibilityService.java:2299)
at com.android.internal.os.HandlerCaller$MyHandler.handleMessage(HandlerCaller.java:44)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8653)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
Code:
public void onAccessibilityEvent(final AccessibilityEvent event)
if (event.getSource() == null) { return; }
if (getRootInActiveWindow() == null) { return; }
AccessibilityNodeInfo node = getRootInActiveWindow(); <- this is the ANR line
.....
.....