我已经阅读了 https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.html 中的 android 文档
我不明白文档中关于 recycle() 和 refresh() 方法的描述。
<强>1。 recycle() - 返回一个实例以供重复使用。
<强>2。 refresh() - 用它代表的 View 的最新状态刷新此信息
最佳答案
Android 辅助功能 API 使用 AccessibilityNodeInfo 节点池。这样,遍历大型树就不会创建许多会减慢垃圾收集器速度的对象。换句话说,当你 recycle() 一个节点时,你可能稍后(例如,在下一个事件上,或者在同一棵树上迭代时)再次收到完全相同的节点对象,但填充了完全不同的细节。这就是为什么不要保留对已回收节点的引用(例如尝试将它们与其他节点进行比较)的原因。
当你获取子节点时,你必须回收每个子节点。当你没有得到它们时,你不需要回收它们。您可以在回收父级之前回收子级,或者反过来,具体取决于您需要访问对象的时间。
当您收到一个节点时,它包含最新的状态。但是当您对其执行操作(例如单击或滚动)时,节点或其他节点的状态可能会发生变化。如果你想实时看到这些变化(而不仅仅是当你收到下一个事件时),你必须刷新()节点(或者你可以刷新()根并尝试获取节点的新副本从根)
当你新鲜获取子节点时,你不需要刷新它们(它们已经是新鲜的)。您只需要刷新之前获得的节点(在与它们或其他节点进行一些交互之前)。
关于Android AccessibilityNodeInfo refresh() 和 recycle(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44921893/
我遇到了一个奇怪的问题。我的Controller调用一个drb对象@request_handler=DRbObject.new(nil,url)availability_result=@request_handler.fetch_availability(request,@reservation_search,params[:selected_room_rates])并且这个Drb对象正在进行一些搜索。但有时,在linux环境中,我会得到一个“0xdba87b30isrecycledobject”和这个堆栈跟踪----(druby://10.254.143.159:9001)/usr/
我在WindowsVistaBusiness上使用GitBash。我正在尝试安装Redmine。基本上在第4步,我需要在安装bundler之前安装RubyGem作为依赖项安装的一部分(http://www.redmine.org/projects/redmine/wiki/RedmineInstall)。我从https://rubygems.org/pages/download下载了rubygems-2.2.2.zip.然后我将文件解压缩到桌面上的一个文件夹中。在GitBash中,我输入了rubysetup.rb,我得到了sh.exe:ruby:commandnotfound。
我目前正在阅读MichaelHartl的RoR教程,但在尝试运行Spork和Guard时卡在了第3章。尝试运行测试时,我得到:/bin/sh:rspec:找不到命令是的,我确实四处寻找答案,但我没有看到RubyTest.sublime.settings文件在哪里,所以我不知道如何编辑它。谁能帮我解决我的错误?这是我的用户fodler中的Rubytest.sublime.settings文件{"erb_verify_command":"bundleexecerb-xT-{file_name}|ruby-c","ruby_verify_command":"bundleexecruby-c{
有没有办法让ruby脚本在执行的每一行回显(或记录到文件我可以tail-f),类似于DOS中的bash-x或@echoon?ruby-w不会这样做——只会增加警告等的冗长程度。研究了Unroller但它不起作用,可能太过时了。不可编译的依赖项。我经常使用irb,但在这种情况下,我需要一些非交互式的东西,例如。检查尸检。 最佳答案 你可以使用ruby-rtracer[your_script.rb]还有ruby-debug哪个candordebug--trace[your_script.rb]
我正在使用sh运行命令,需要读取该命令的输出。例如sh"whoami"但是sh似乎只返回true而不是包含whoami命令输出的字符串。有谁知道解决方案吗? 最佳答案 有几种方式:output=`whoami`#oroutput=%x[whoami]#orusing'system'butincaseoferrorsit'sgonnareturnfalseoutput=system"whoami" 关于ruby-使用rakesh时如何检索命令的输出?,我们在StackOverflow上找到
我试图在Gitbash中运行一个javascript文件,但出现了这个错误。$nodechrome-devtools-autosave-server/index.jssh.exe":node:commandnotfound截图如何解决?我的操作系统是Windows7(64位) 最佳答案 默认情况下,Node在MINGW32中不“可见”,仅在Windows命令终端中可见。npm也是如此。如何添加它(如果安装了Node),fromtheofficialMINGWFAQ:MSYSusesaBourne-likeshell,henceyou
我试图让我的go程序执行我的Linux(ubuntu)系统中的脚本文件(.sh),但每次我收到以下错误时:Gotcommandstatus:fork/exec/home/myname/Code/MyProj/Server/src/:permissiondenied我尝试运行的脚本非常简单:临时文件:echotempscript:$1temp.sh权限:-rwxrwxrwx1mynamemyname19oct1313:33temp.sh我用来运行脚本的golang代码:output,err:=exec.Command("/home/myname/MyProj/Server/src/","
我正在尝试部署transfer.sh的本地实例.但是,当我运行时:goruntransfersh-server/*.go-provider=local--port8080--temp=/tmp/--basedir=/tmp/我得到:transfersh-server/virustotal.go:30:2:cannotfindpackage"github.com/dutchcoders/go-virustotal"inanyof:/usr/lib/go-1.6/src/github.com/dutchcoders/go-virustotal(from$GOROOT)/usr/share/
因为我最近开始使用revel框架来构建goweb应用程序。我创建了一个测试应用程序(orpat),将其编译为“revelbuildorpatprod”并更改了confPORT->8084以发布该应用程序。生成的文件是-orpat(可执行文件11MB)运行.sh运行.bat源/文件夹它从其他位置在我的本地系统上执行良好(当然它安装了golang和revel)。http://localhost:8084我将构建文件复制到未安装golang的虚拟机中,它也在那里执行'./run.sh':在终端中运行此cmd足以使应用联机。下面是dockerfile->FROMgolang:1.10.4-al
我的问题是在ARMarch系统(带有Raspbian的RaspberryPI)上运行我的容器时出现错误。图像是建立在同一个覆盆子上的。这是我的dockerfile:FROMarm32v7/golangCOPYqemu-arm-static/usr/binENVSTATUSOK_VERSION0.1.1RUNapt-getupdate\&&apt-getinstall-yunzip\&&wgethttps://github.com/sanathp/statusok/releases/download/$STATUSOK_VERSION/statusok_linux.zip\&&unzip