AIWROK软件悬浮窗自定义启停
AIWROK软件悬浮窗自定义启停// 官方QQ群 711841924
//悬浮窗自定义启停
var f = new floatUI();
var t;
f.loadSXML(` <vertical>
<button id="b1" text="启动"/>
<button id="b2" text="关闭"/>
</vertical>`)
var b1 = f.findViewById('b1');
b1.setOnClickListener(()=> {
if (b1.getText() == "启动") {
b1.setText("停止");
//新建一个线程
t = new thread();
t.runJsCode(()=>{
//这里写代码
while(true){
sleep.second(1);
printl('线程执行代码防止耗时占用ui线程');
}
}, "-线程名")
}
if(b1.getText() == "停止"){
b1.setText("启动");
t.stop();
}
})
var b2 = f.findViewById('b2');
b2.setOnClickListener(()=> {
printl('关闭');
stopAll();
});
这段代码是使用 AIWROK 编写的,一个基于JavaScript的自动化工具,可以用于Android设备上的自动化操作。代码的主要功能是创建一个悬浮窗,悬浮窗上包含两个按钮:“启动”和“关闭”。这两个按钮的功能分别是启动和停止一个后台线程,以及关闭所有运行的任务。代码详细说明如下:
[*]创建一个悬浮窗对象 f,使用 new floatUI() 来初始化。
[*]定义变量 t,用于存储线程对象。
[*]使用 loadSXML 方法加载一个XML格式的布局文件到悬浮窗中。这个布局文件定义了一个垂直的线性布局,其中包含两个按钮,分别用于启动和关闭线程。
[*]使用 findViewById 方法获取悬浮窗中id为 b1 的按钮对象,即“启动”按钮。
[*]为“启动”按钮设置点击事件监听器 setOnClickListener。当点击按钮时,判断按钮的当前文本内容:
[*]如果文本是“启动”,则将按钮文本更改为“停止”,表示线程已被启动。
[*]创建一个新的线程对象 t,使用 new thread()。
[*]使用 runJsCode 方法在新线程中运行JavaScript代码。这里写了一个无限循环,循环中使用 sleep.second(1) 使线程每秒休眠一次,然后使用 printl 方法在日志中打印一条消息,防止长时间运行的代码占用UI线程。
[*]如果文本是“停止”,则将按钮文本更改为“启动”,表示线程已被停止。
[*]使用 t.stop() 方法停止线程。
[*]使用 findViewById 方法获取悬浮窗中id为 b2 的按钮对象,即“关闭”按钮。
[*]为“关闭”按钮设置点击事件监听器 setOnClickListener。当点击按钮时,使用 printl 方法在日志中打印“关闭”,然后调用 stopAll() 方法,停止所有正在运行的任务。
这段代码的核心在于通过悬浮窗上的按钮来控制一个后台线程的启动和停止,以及关闭所有运行的任务。注意,sleep.second(1) 和 stopAll() 是库中的方法,sleep.second(1) 使脚本休眠1秒,stopAll() 用于停止所有脚本。
页:
[1]