var floatyWin = floaty.window(
<vertical padding="16">
<button id="startBtn" text="开始" bg="#4CAF50" />
<button id="stopBtn" text="停止" bg="#F44336" enabled="false" />
</vertical>
);

// 定义处理函数
var handlers = {
running: false,

start: function () {
if (this.running) return;
this.running = true;
toast('任务开始');
for (var i = 0; i < 3; i++) {
// 点击 "确认信息并支付"
className("android.widget.TextView").text("确认信息并支付").findOne().click();
// 点击 "就是这家"
className("android.widget.TextView").text("就是这家").findOne().click();
// 间隔 1 秒
sleep(500);
}
},

stop: function () {
if (!this.running) return;
this.running = false;
toast('任务停止');
// 停止任务代码
}
};

// 按钮点击事件监听
floatyWin.startBtn.click(function () {
handlers.start();
ui.run(function () {
floatyWin.startBtn.enabled = false;
floatyWin.stopBtn.enabled = true;
});
});

floatyWin.stopBtn.click(function () {
handlers.stop();
ui.run(function () {
floatyWin.startBtn.enabled = true;
floatyWin.stopBtn.enabled = false;
});
});

// 保持悬浮窗不被关闭
setInterval(function () {}, 1000); 这段代码执行起来很卡

eaapnppd9z · 5 小时前

回答

Hamibot AI
1
· 5 小时前

你的代码执行卡顿可能是由于在 start 函数中使用了 for 循环,并且在循环中调用了 className("android.widget.TextView").text("确认信息并支付").findOne().click();className("android.widget.TextView").text("就是这家").findOne().click();,这可能导致性能问题。建议你尝试以下优化:

  1. 减少循环次数:如果不需要重复执行多次,可以考虑减少循环次数。
  2. 增加睡眠时间:在每次点击操作后增加适当的睡眠时间,避免过于频繁的操作。

以下是优化后的代码示例:

// 文档地址 https://docs.hamibot.com/
var floatyWin = floaty.window(
   <vertical padding="16">
     <button id="startBtn" text="开始" bg="#4CAF50" />
     <button id="stopBtn" text="停止" bg="#F44336" enabled="false" />
   </vertical>
);

// 定义处理函数
var handlers = {
  running: false,

  start: function () {
    if (this.running) return;
    this.running = true;
    toast('任务开始');
    // 点击 "确认信息并支付"
    className("android.widget.TextView").text("确认信息并支付").findOne().click();
    // 点击 "就是这家"
    className("android.widget.TextView").text("就是这家").findOne().click();
    // 间隔 1 秒
    sleep(500);
    // 如果需要重复执行,可以使用定时器
    // setInterval(function () {
    //   // 点击 "确认信息并支付"
    //   className("android.widget.TextView").text("确认信息并支付").findOne().click();
    //   // 点击 "就是这家"
    //   className("android.widget.TextView").text("就是这家").findOne().click();
    //   // 间隔 1 秒
    //   sleep(500);
    // }, 1000);
  },

  stop: function () {
    if (!this.running) return;
    this.running = false;
    toast('任务停止');
    // 停止任务代码
  }
};

// 按钮点击事件监听
floatyWin.startBtn.click(function () {
  handlers.start();
  ui.run(function () {
    floatyWin.startBtn.enabled = false;
    floatyWin.stopBtn.enabled = true;
  });
});

floatyWin.stopBtn.click(function () {
  handlers.stop();
  ui.run(function () {
    floatyWin.startBtn.enabled = true;
    floatyWin.stopBtn.enabled = false;
  });
});

// 保持悬浮窗不被关闭
setInterval(function () {}, 1000);
ℹ️ 本回答由 AI 生成,内容仅供参考