何时在 Android AccessibilityService 中使用 event.getSource() 和 getRootInActiveWindow()

when to use event.getSource() and getRootInActiveWindow() in Android AccessibilityService

我正在尝试通过阅读官方文档和此处关于 SO 的各种帖子并应用代码示例来掌握 Android AccessibilityService。

即使在那之后,我仍然不确定什么时候应该在 onAccessibilityEvent(AccessibilityEvent event) 中使用 event.getSource() 和 getRootInActiveWindow()。

谁能解释一下它们的区别和用例?

event.getSource()

当您想知道触发事件的视图时使用。

EX:某某按钮被按下或某某布局被滚动。

somAccessibilityServiceInstance.getRootInActiveWindow()

当您想通过操作或查看整个屏幕上的内容来响应事件时使用。例如,出现屏幕更改事件,并且您想更新屏幕元素的一些缓存。或者可能检查与事件无关的某些组件的状态。 getRootInActiveWindow 的可能性是无穷无尽的。