我已阅读https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.html中的android文档
我不理解文档中有关recycle()和refresh()方法的描述。
1. recycle()-返回实例以供重用。
2. refresh()-使用表示的 View 的最新状态刷新此信息
最佳答案
Android Accessibility API使用AccessibilityNodeInfo
节点池。这样,在大树上进行迭代将不会创建许多会减慢垃圾收集器速度的对象。换句话说,当您对一个节点进行cycle()时,您稍后可能会(例如,在下一个事件上或在同一棵树上进行迭代时)再次接收完全相同的节点对象,但会充满完全不同的详细信息。因此,不要持有对已回收节点的引用(例如,尝试将其与其他节点进行比较),这一点很重要。
获取子节点时,必须回收每个子节点。如果您没有得到它们,则不需要回收它们。您可以在回收 parent 之前回收 child ,反之亦然,这取决于需要访问这些对象的时间。
当您收到一个节点时,它包含最新状态。但是,当您对其执行操作(例如单击或滚动)时,该节点或其他节点的状态可能会更改。如果要实时查看这些更改(并且不仅是在收到下一个事件时),则必须刷新()节点(或者可以刷新()根节点并尝试获取该节点的新副本)从根开始)
当您刚获得子节点时,不需要刷新它们(它们已经是新鲜的)。您只需要刷新先前获得的节点(在与它们或与其他节点进行一些交互之前)。
关于Android AccessibilityNodeInfo refresh()和recycle(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44921893/