java.lang.RuntimeException: Can not toast on a thread that has not called Looper.prepare()终极解决方案

java.lang.RuntimeException: Can not toast on a thread that has not called Looper.prepare()终极解决方案使用runOnUiThread方法,不使用Looper。

大家好,又见面了,我是你们的朋友全栈君。

源代码:

Thread thread = new Thread(() -> { 
   
    MySQLUtil mySQLUtil = new MySQLUtil(this);
    mySQLUtil.getConnection("cce-18");
    ArrayList<String> res = null;
    res = mySQLUtil.getMajorGpaRank(idMyself, major, finalYear, finalSemester_, course_nature);
    if(res == null) { 
   
         ToastUtil.showMessage(getApplicationContext(), "暂无成绩信息!");
    }else { 
   ...}
});
thread.start();
try { 
   
    thread.join();
} catch (InterruptedException e) { 
   
    e.printStackTrace();
}

网上看了很多解决办法,都是在Toast的前后加上:

Looper.prepare();
ToastUtil.showMessage(getApplicationContext(), "暂无成绩信息!");
Looper.loop();

实验之后发现会卡在原来的界面,正确的解决办法:开一个runOnUiThread,如下所示:

runOnUiThread(() -> { 
   
    ToastUtil.showMessage(getApplicationContext(), "暂无成绩信息!");
});
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161493.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql handlersocket_HandlerSocket介绍[通俗易懂]

    mysql handlersocket_HandlerSocket介绍[通俗易懂]HandlerSocket的原理HandlerSocket的应用场景:MySQL自身的局限性,很多站点都采用了MySQL+Memcached的经典架构,甚至一些网站放弃MySQL而采用NoSQL产品,比如Redis/MongoDB等。不可否认,在做一些简单查询(尤其是PK查询)的时候,很多NoSQL产品比MySQL要快很多,而且前台网站上的80%以上查询都是简洁的查询业务。MySQL通过Handl…

    2022年8月24日
    5
  • 解决CentOS7虚拟机无法上网并设置CentOS7虚拟机使用静态IP上网

    解决CentOS7虚拟机无法上网并设置CentOS7虚拟机使用静态IP上网最近在VMware虚拟机里玩Centos,装好后发现上不了网。经过一番艰辛的折腾,终于找到出解决问题的方法了。最终的效果是无论是ping内网IP还是ping外网ip,都能正常ping通。方法四步走:第一步,我们进入/etc/sysconfig/network-scripts目录,查看该目录有没有形如ifcfg-XXX的文件:如果你看不到以ifcfg-打头的文件(ifcfg-lo除外),…

    2022年5月12日
    36
  • 加密_摩斯密码

    加密_摩斯密码加密

    2022年4月21日
    48
  • 宝塔分销源码_云进销存ERP开发教程

    宝塔分销源码_云进销存ERP开发教程大家好啊,我是测评君,欢迎来到web测评。本期给大家带来一套电商ERP进销存系统源码。运行环境服务器宝塔面板PHP5.6Mysql5.6LinuxCentos7以上文字教程下载源码,宝塔添加一个站点,创建一个数据库,导入数据库文件目录下的taoydm.sql修改数据库链接文件application\config\database.php(记得不要用记事本修改,否则可能会出现验证码显示不了问题,建议用Notepad++)压缩codes目录下的源码上传到宝塔新建网站的根目录后解压缩默认后

    2022年9月20日
    3
  • ipv4地址分类_d类ipv4地址以什么开始

    ipv4地址分类_d类ipv4地址以什么开始ipv4地址:表示一个网络节点的网络地址总共可以产生40多亿ip地址,32位二进制数–表示用点分十进制IPv4地址由四段组成,每个字段是一个字节,8位,最大值是255,,IPv4地址由两部分组成,即网络地址和主机地址。网络地址表示其属于互联网的哪一个网络,主机地址表示其属于该网络中的哪一台主机,两者是主从关系。IPv4地址的四大类型标识的是网络中的某台主机。IPv4地址长度为32位,共4…

    2025年8月21日
    3
  • 【Java 8 新特性】Java LocalDate 转 Date

    【Java 8 新特性】Java LocalDate 转 DateJavaLocalDate转Date1.使用LocalDate.atTime2.使用LocalDate.atStartOfDay3.使用LocalDateTime.of4.使用Timestamp.valueOf完整示例参考文献在这一页,我们将提供如何将java.time.LocalDate转换成java.util.Date。LocalDate表示一个格式为yyyy-MM-dd的日期,如2019-05-08。我们可以使用以下方法和构造函数来创建一个Date对象。1.Date.f

    2022年10月4日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号