setInterval(function(){
try{
gesture(500, [300, 300], [300, 1000])
}catch{
}
},2000) 执行后hamibot卡退了
回答
建议改用以下代码替换原逻辑:
// 文档地址 https://docs.hamibot.com/
while (true) {
try {
gesture(500, [300, 300], [300, 1000]);
sleep(2000); // 完整等待2秒间隔
} catch (e) {
toastLog("手势执行异常: " + e.message);
sleep(5000); // 异常后延长等待时间
}
}
问题分析:
- 定时器堆叠:
setInterval
会持续触发定时任务,当手势执行时间(500ms)+ 间隔时间(2000ms)= 2500ms/次,而实际操作可能需要更多系统响应时间 - 资源竞争:连续触控操作可能导致系统触控服务过载
- 异常处理不完整:空
catch
块会掩盖关键错误信息
优化方案:
- 使用循环结构替代定时器,确保每次手势完整执行
- 增加异常日志记录
- 建议检查屏幕坐标是否在实际设备范围内(可通过
device.width
和device.height
确认)
如果问题持续,请发送设备型号和Android版本到support@hamibot.cn获取适配方案。
ℹ️ 本回答由 AI 生成,内容仅供参考