java.lang.Thread不是有个suspend方法吗,恢复就resume,多简单,直接码

importClass(java.lang.Thread);
importClass(java.lang.Runnable);
var windows=floaty.window(<frame id="frame"w="250" margin="0" gravity="center" bg="#77ffffff"><vertical><horizontal><button id="start" margin="-3" w="100" textSize="12sp" text="start"></button><button id="stop" margin="-3" w="100" textSize="12sp" text="stop"></button></horizontal></vertical></frame>
);
var num = 0;
var currentThread = null;
var status = true;
windows.start.on("click",()=>{currentThread = new Thread(function(){while(true){console.log("num", num);sleep(1000);}});currentThread.start();
});
windows.stop.on("click",()=>{currentThread.suspend();
});
setInterval(()=>{}, 1000);

搞起,运行

07-02 23:11:05.488 Script-0 Main [remote://thread.js]/E: Wrapped java.lang.UnsupportedOperationExceptionat remote://thread.js:29:0at file:///android_asset/modules/__bridges__.js:10:007-02 23:11:05.491 Script-0 Main [remote://thread.js]/E: Wrapped java.lang.UnsupportedOperationExceptionat remote://thread.js:29:0at file:///android_asset/modules/__bridges__.js:10:0

很遗憾,貌似并不行autojs好像不能使用thread的过时的方法。

但是autojs自己封装的threads又没有暂停。

我想的是run循环内,每次循环都判断是否暂停,定义一个全局变量来设置是否暂停的状态,上代码

var w = floaty.window(<frame><button id="control" text="开始运行"/></frame>
);
var status = false;//是否暂停
w.control.on("click", function() {switch (w.control.text()) {case "开始运行":w.control.text("暂停运行");//更改按钮文字status = false;//设置状态main();break;case "暂停运行":status = true;w.control.text("继续运行");//更改按钮文字break;case "继续运行":status = false;w.control.text("暂停运行");//更改按钮文字break;}});
function main(){threads.start(function(){for(var i=1;i<=9999999;i++){console.log(i);isWait();//判断是否处于暂停状态sleep(200);//防止控制台输出过快}});}
/*** 判断是否处于暂停状态,并阻塞线程*/
function isWait(){while(status);
}
/*** 设置悬浮窗保持运行*/
setInterval(() => {}, 1000);

可以是可以,问题又来了呀,正常的流程是eval一个代码片段,而不是死循环

所以该怎么办呢?很简单的一个方法,你的代码片段上每句话都加上这个循环。。。

还有更简单的方法不,有。自己写个方法,用“;”和换行来分割代码,中间多加个字符串isWait(),拼接在一起,形成新的代码片段

var w = floaty.window(<frame><button id="control" text="开始运行"/></frame>
);
var status = false;//是否暂停
w.control.on("click", function() {switch (w.control.text()) {case "开始运行":w.control.text("暂停运行");//更改按钮文字status = false;//设置状态main();break;case "暂停运行":status = true;w.control.text("继续运行");//更改按钮文字break;case "继续运行":status = false;w.control.text("暂停运行");//更改按钮文字break;}});
function main(){threads.start(function(){var codestr = "while(true){console.log(status);sleep(200);}";var code = loadJsCode(codestr);console.log("", code)eval(code);});}
/*** 判断是否处于暂停状态,并阻塞线程*/
function isWait(){while(status);
}/*** 加载代码* @param {*} code */
function loadJsCode(code){toastLog(code)var codeList = code.split(";");var builder = new java.lang.StringBuilder();//使用builder来快速拼接for(var i = 0 ;i< codeList.length;i++){builder.append(codeList[i]).append(";\r\n").append("isWait();").append("\r\n");}return builder.toString();
}
/*** 设置悬浮窗保持运行*/
setInterval(() => {}, 1000);

完美运行

注意的是,代码中有for循环,会有问题,(会把for中的;当作语句结束,加上isWait()),所以,还是用vs的字符替换器,一键替换并添加的靠谱

autojs 多线程 暂停相关推荐

  1. autojs怎么暂停脚本_如何用控制台暂停脚本?

    不行,我见一个示例的,是某人的ts跳一跳脚本,里面就有控制台暂停功能,可以我看不太懂-- requestScreenCapture(); //请求截图 n = device.width / 1080; ...

  2. python 多线程暂停功能

    何鑫思想是: decorator是多线程安全的 看如下代码, 思想就是 让线程A进入decorator并loop, 首先打印pause 让线程B进入decorator, 如果打印, 证明是线程安全的 ...

  3. autojs怎么暂停脚本_autojs怎么运行脚本_auto.js运行脚本教程_3DM手游

    很多小伙伴刚开始用Auto.js这款软件,对于运行脚本的方法还不太清楚,不知道该如何用Auto.js这款软件,如何在手机中运行脚本呢?下面小编为大家带来了Auto.js运行脚本的方法教程,有需要的小伙 ...

  4. autojs怎么暂停脚本_三国群英传8脚本已暂停名片点赞autojs

    原程序如下: OptionExplicit `定义获取桌面HDC的api函数 PrivateDeclareFunctionGetDCLib"user32"(ByValhwndAsL ...

  5. autojs之多线程-Threads

    autojs多线程新手入门 autojs多线程新手入门 前言 一.多线程使用须知 二.个人理解 三.多线程常用函数 1.子线程开启函数 2.子线程停止函数 3.等待线程执行完成 4.返回线程是否存活 ...

  6. 多线程断点续传java_Rxjava,多线程,断点续传

    安卓多线程断点续传 非WIFI暂停,手动暂停. 话不多说,上图,上demo. 喜欢的订阅关注一下,每周会更新3-5个案例. 断点续传 手动暂停 多线程暂停 准备工作 dependencies{ com ...

  7. Autojs7实戦---薅羊毛时间版APK

    薅羊毛时间版APK下载地址:薅羊毛时间版_v0.0.40.apk - 蓝奏云 薅羊毛时间版源代码下载地址:薅羊毛时间版源码.rar - 蓝奏云 薅羊毛时间表顾名思义就是支持时间账号,可以进行时间付费, ...

  8. java语言笔记io

    java语言笔记(进阶篇) 01-IO 1.基本类 2-IO-File(文件) File:文件和目录(文件夹)的路径 (1)IO基础 ①路径 package JAVAIO1; import java. ...

  9. python3基础知识复习 --TKinter GUI的终极选择(2)

    文章目录 事件绑定 Message Tkinter布局管理 Tkinter使用多线程 Tkinter多线程暂停和继续 Tkinter文件之间的调用 事件绑定 一个 Tkinter 应用程序大部分时间花 ...

最新文章

  1. vim对nginx的语法高亮设置
  2. 三相全桥电压型PWM逆变器(交直交)Simulink仿真
  3. 2009.11网络工程师考试案例试题学习攻略(1)
  4. 浅谈Perl的类、包、模块与面对对象编程
  5. Zynq调试和测试子系统
  6. html 点击文本框则选中,JS事件 内容选中事件(onselect)选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,同时调用的程序就会被执行。...
  7. 获取远程文件内容之浏览器模拟器(BrowserEmulator)
  8. 锁屏面试题百日百刷-网络篇(一)
  9. Python 操作 Windows 粘贴板
  10. 中国水培营养素行业市场供需与战略研究报告
  11. Hadoop架构中各个集群在开发中的作用
  12. vs 执行单个文件,如cpp
  13. 改变学习方式,改变一生-陈光超强逻辑记忆法笔记
  14. Jmeter5.0脚本录制
  15. PPT如何压缩?PPT文件压缩的方法有哪些
  16. 谷歌眼镜公开接受预订,全新宣传视频帅爆了_-Chaz-_新浪博客
  17. 《上古卷轴5:天际》控制台代码之配料药剂
  18. Linux centOS 修改欢迎界面
  19. BIS新增手机测试认证标准 IS16333 (Part 3)2017.6.30 印度语
  20. 云起实验室:零基础入门Serverless:一键部署红白机小游戏

热门文章

  1. Linux初步学习笔记
  2. 华为mate50会用鸿蒙系统吗,提升50%芯片+鸿蒙系统华为Mate40,华为Mate30更加悲惨价格骤降...
  3. vue2.0源码解析(一)
  4. 关于VS2013使用OleDbConnection.open报错的解决办法
  5. 发布动态网站需要额外安装哪些软件_专为Win10打造的一款免费开源动态壁纸软件,可与WallpaperEngine媲美!...
  6. Excel功能的强大
  7. WPF 组态软件实现思路(WPF控件可视化布局)
  8. mysql句柄是文件描述符_误删除innodb ibdata数据文件 文件句柄 文件描述符 proc fd...
  9. SAP喊出“在中国,为中国”的口号
  10. Java学习篇六——循环结构之while语句