toast快速显示

简介: toast快速显示

第一种, 全局锁

/*
 * @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);


声明

部分内容来自网络

本教程仅用于学习, 禁止用于其他用途



相关文章
|
8月前
|
移动开发 JavaScript 小程序
uView Toast 消息提示
uView Toast 消息提示
183 0
|
Android开发
Toast的基本使用
终于学习完Adapter类相关的一些控件,当然除了讲解的那几个,还有其他很多的相关的控件,就不慢慢讲解了~有需要的自行查阅文档,查看相关的用法,本节带来的是:Android用于提示信息的一个控件——Toast(吐司)!Toast是一种很方便的消息提示框,会在屏幕中显示一个消息提示框,没任何按钮,也不会获得焦点一段时间过后自动消失!非常常用!
7074 0
Toast的基本使用
|
Android开发
android中的提示信息显示方法(toast应用)
android中的提示信息显示方法(toast应用)
278 1
|
容器
自定义Toast样式
所谓自定义一个Toast就是建立一个布局文件,然后使用一个view容器承载,然后显示出来。Toast毕竟只是起到一个提示作用,不必要放太多控件去填充,反而会显得内容很拥挤,一般一个标题,一张图片,一段简短文字即可。
439 0
自定义Toast样式
|
Java Android开发
部分手机Toast不显示的解决办法
转载请标明地址 QuincySx: http://www.jianshu.com/p/f59022012132 部分手机可能Toast不显示,换其他手机是正常的 这是因为Toast显示需要NotificationManagerService(查看A...
1307 0