第一种, 全局锁
/* * @author: 抠脚 */ "ui"; // 重点是有个全局锁 let myLock = threads.lock(); importClass(android.widget.Toast); importClass(android.view.Gravity); ui.layout( <vertical> <button id="btn"></button> </vertical> ); setInterval(function () { ui.btn.setText(new Date().getTime() + ""); }, 1000); for (var i = 0; i < 3; i++) { ToastShow("i = " + i, 200); log("i = " + i); } function ToastShow(str, time) { threads.start(function () { myLock.lock(); myToast = Toast.makeText(context, str, Toast.LENGTH_LONG); myToast.show(); setTimeout(() => { myToast.cancel(); myLock.unlock(); }, time || 500); }); }
第二种, while死循环
/* * @version: 1.0 * @Date: 2021-08-11 15:15:47 * @LastEditTime: 2021-08-11 16:29:11 * @LastEditors: 牙叔 * @Description: toast快速显示 * @FilePath: \autojs-test\toast快速显示.js * @名人名言: 牙叔教程 简单易懂 * @bilibili: 牙叔教程 * @公众号: 牙叔教程 * @QQ群: 747748653 */ engines.all().map((ScriptEngine) => { if (engines.myEngine().toString() !== ScriptEngine.toString()) { ScriptEngine.forceStop(); } }); importClass(android.widget.Toast); function ToastManager() { let dataList = []; let scope = this; this.showing = false; function _toast(data) { scope.showing = true; threads.start(function () { let toast = Toast.makeText(context, data.msg, Toast.LENGTH_SHORT); toast.show(); setTimeout(function () { log("要中断了"); toast.cancel(); toast = null; scope.showing = false; }, data.t); }); } this.add = function (msg, t) { t = t || 200; dataList.push({ msg: msg, t: t, }); }; threads.start(function () { while (1) { if (dataList.length > 0) { _toast(dataList.shift()); while (1) { sleep(30); if (!scope.showing) { break; } } } sleep(30); } }); } let toastManager = new ToastManager(); for (var i = 0; i < 10; i++) { toastManager.add("i = " + i); sleep(900); } setInterval(function () {}, 1000);
声明
部分内容来自网络
本教程仅用于学习, 禁止用于其他用途