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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js的6种数据类型_主要的数据类型

    js的6种数据类型_主要的数据类型JS常用的六种数据类型在JS中一共有九种数据类型,有六种基本数据类型,分别是:String(字符串)、Number(数值)、Boolean(布尔值)、Null(空值)、Undefined(未定义)、Object(对象)String字符串在JS中字符串需要使用引号引起来使用双引号或单引号都行,但是不要混着用引号不能嵌套,双引号不能放双引号,单引号不能放单引号在字符串中我们可以使用\作为转义字符,当表示一些特殊符号是可以使用\进行转义\“表示”、\‘表示’、\n表示换行、\t制表符

    2025年9月20日
    5
  • 常见JVM面试题及答案整理[通俗易懂]

    常见JVM面试题及答案整理[通俗易懂]前言总结了JVM一些经典面试题,分享出我自己的解题思路,希望对大家有帮助,有哪里你觉得不正确的话,欢迎指出,后续有空会更新。1.什么情况下会发生栈内存溢出。思路:描述栈定义,再描述为什么会溢出,再说明一下相关配置参数,OK的话可以给面试官手写是一个栈溢出的demo。我的答案:栈是线程私有的,他的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储局部变量表,操作…

    2022年6月9日
    29
  • 远程代码托管平台–GitHub、Gitee的使用

    远程代码托管平台–GitHub、Gitee的使用本文章需要阅读者有Git基础,如果不知道Git是什么或者不知道Git的基本操作的小伙伴可以先看一看我上一篇文章:Git的介绍、安装及其基本操作在上一节中我们学习了目前全球最流行的分布式版本控制工具–Git的产生、安装以及基本使用,了解了如何通过Git进行版本控制,但是我们可以发现,在上一节中我们所有的操作都是在本地进行的(由工作区添加到暂存区,由暂存区提交到本地库),但是我们知道,在公司内部,一个项目的开发是由一个团队协作完成的,这种协作包括团队内协作和跨团队协作,那么如何实现团队协作呢?事实上,实

    2025年5月30日
    1
  • 阿里云服务器搭建私人云盘

    阿里云服务器搭建私人云盘1、配置安全组端口新建安全组并开放以下端口2、利用Git来搭建私人云盘1、利用Workbench点击立即登录进行远程连接2、安装docker容器docker是一款开源的容器运行工具,提供了一套便捷的服务打包、分发、部署方式。我们将要部署的服务就是通过docker容器来运行的。docker-compose是一款基于docker的容器编排工具。有了它,我们通过一份配置文件就能启动所有需要的服务。依次执行以下命令,通过自动化脚本完成docker..

    2022年5月23日
    42
  • 各类加载loading动画效果

    各类加载loading动画效果效果一: 一、HTMLLoading…二、CSS/*绿色背景*/body{   background:#4ea980;   margin:50px;}/*纯白色圈*/.loader{   text-indent:-9999em;   position:relative;   width:200px;   height:20

    2022年4月19日
    256
  • 一、Windows安装Git[通俗易懂]

    一、Windows安装Git[通俗易懂]工欲善其事必先利其器,工作中在使用Git之前,最先做的一件事就是安装它,但是因为不同的开发需求,工作中可能会用到的系统不一样,有使用Linux的,有使用Mac的,也有使用Windows的。不过Git在这几个系统中都有比较好的支持,只要能够进行正确的安装和配置都可以正常使用Git,下面直接进入主题。#Windows安装Git1、百度搜索Git直接点击图中箭头指向的链接,进入Git客户端下载的网站选择Windows,进入版本选择页面注意这里Git客户端分为普通安装版和便携版本,便携版本也就是上

    2025年10月5日
    3

发表回复

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

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