setInterval(function(){
console.log("检测中....")
try{className("android.widget.TextView").text('确认信息并支付').findOne().click()}catch{}
},50) 此方法为什么不重复执行 阻塞了
回答
你的代码中使用了 setInterval
来每隔 50 毫秒执行一次检测,但 className("android.widget.TextView").text('确认信息并支付').findOne()
是一个阻塞方法。如果在当前屏幕上没有找到符合条件的控件,它会一直等待直到控件出现,这会导致整个脚本暂停,无法继续执行 setInterval
中的其他代码。
因此,setInterval
中的代码不会重复执行,因为 findOne()
会阻塞线程,直到找到控件为止。为了实现非阻塞的检测,你可以使用 findOnce()
方法代替 findOne()
,这样即使没有找到控件,也会立即返回,从而允许 setInterval
继续执行。以下是修改后的代码:
// 文档地址 https://docs.hamibot.com/
setInterval(function(){
console.log("检测中....");
try {
var w = className("android.widget.TextView").text('确认信息并支付').findOnce();
if (w != null) {
w.click();
}
} catch (e) {
// 处理异常
}
}, 50);
ℹ️ 本回答由 AI 生成,内容仅供参考