android FATAL EXCEPTION: Thread - 101 错误问题_exception 101_一别两宽的博客-程序员宅基地

技术标签: android  

  最近遇到一个错误,小错误,但有可能经常不注意的地方,我们都知道大多数情况下我们都是在子线程进行耗时操作,在主线程更新UI。因此我们有很多子线程耗时操作的东西出现(说了句废话);   我来说说我遇到的问题情况,

  new Thread(new Runnable() {
                    @Override
                    public void run() {
                        String numgo = EDITGO.getText().toString().trim();
                        Log.w("Main", "num" + numgo);
                        if (numgo.equals("")) {
                           

                            Toast.makeText(contextPub, "不能为空", Toast.LENGTH_SHORT).show();


                        } else {
                            String sOut = ComS2.ES_LotteryGoOut(Integer.valueOf(numgo));
                            DuihuakuangShow(sOut);
                        }
                    }
                }).start();

貌似上面的问题没有错 ,上面代码的意思很简单,就是我开启一个子线程,然后拿到输入框的值,进行非空的判断,然后Toast提示一下,不为空执行我的一串口的耗时操作。整体下来没毛病啊老铁,初级程序员啊。。。。。。。。。。。。

因为我们在子线程,不能执行Ui主线程。。。toast是在主线程显示的东西。。。。。。所以............、

解决办法使用  

runOnUiThread(new Runnable() {
    @Override
    public void run() {
  

在这使用Toase

   }
});

runOnUiThread 看这个东西  单看名就能理解了   run(这个东西)   on (回到 )  UI (ui)  Thread (线程)   回到主线程Ui线程执行动作,哈哈,我是这么理解的,正确的代码

   new Thread(new Runnable() {
                @Override
                public void run() {
                    String numgo = EDITGO.getText().toString().trim();
                    Log.w("Main","num"+numgo);
                    if(numgo.equals("")){
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(contextPub,"不能为空",Toast.LENGTH_SHORT).show();
                            }
                        });
                    }else {
                        String sOut = ComS2.ES_LotteryGoOut(Integer.valueOf(numgo));
                        DuihuakuangShow(sOut);
                    }
                }
            }).start();

runonUIThread 只不过是其中一种  你也可能开启Handler  执行  ,

其实把问题用大白话说就是     子线程执行耗时操作,主线程执行刷新UI.你要使用那个工具回到主线程执行Ui刷新就可以了

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40332973/article/details/84372588

智能推荐

移动端项目整合之前后端分离_前后端分离模式在移动软件中_爱睡的虫虫的博客-程序员宅基地

搭建接口环境express$ express 项目名(项目名可忽略)mongodb (全局配置此处可省略)$ cnpm install mongodb --save添加依赖包$ cnpm install注:配置全局node-devnode-dev是一个node.js开发工具,当文件被修改时,它会自动重新启动node进程。$ cnpm install -g..._前后端分离模式在移动软件中

C语言调用C++类中函数,C语言C++混合编译_box未定义的引用_Joker-lay的博客-程序员宅基地

1、引言由于嵌入式开发中都是用C语言写的,但是很多开源代码都会C++的,因此为了能够方便快速的直接调用,最近就在研究如何能在C语言中调用C++代码。2、具体步骤这是在Ubuntu中的最终程序结果需要的文件有box.cpp box.h main.c Makefile其中box.cpp代码为:#include “box.h”#include<stdio.h>// 混合编..._box未定义的引用

git中fatal: Authentication failed的问题_shiki0083的博客-程序员宅基地

fatal: Authentication failed就是凭证失败的意思那么凭证失败自然想到的就是修改凭证了可是找了半天也没找到git的凭证修改在哪儿重要在一篇文章中找到了win7 下git的凭证存在windows系统,我日你个xx,怪不得找到,知道真相的我眼泪都掉下来了位置 控制面板管理windows凭据删掉就可以了谢谢,解决大问题了 转发备忘一下 ...

Django+Vue部署_django vue 部署_shizhengju的博客-程序员宅基地

说明:后文中出现的以下字符串均表示具体的路径或者名称,含义如下:DJANGO_DIR---表示django的工程根目录 例如:/data/Datalable DJANGO_NAME---表示django的工程名称 例如Datalable VUE_HTML_DIR---表示vue的index.html路径 例如:/data/dist VUE_STATIC_DIR---表示vue的stati..._django vue 部署

Quartz.NET学习系列(八)--- 任务监听器_ijoblistener_Eye_cng的博客-程序员宅基地

Quartz.NET提供了触发器监听接口、任务监听接口、计划监听接口,基本上不怎么使用,除了任务监听接口有使用场景外,其它的监听器目前还未找到使用场景。 任务监听接口需要继承自IJobListener,应用场景可以是:执行完一个任务,自动切换执行另一个任务。具体代码如下: public class SimpleJob1 : IJob { private_ijoblistener

界面控件DevExpress Blazor UI组件v20.2新版亮点:集成Visual Studio_devexpressv20_界面开发小八哥的博客-程序员宅基地

DevExpress技术交流群3:700924826欢迎一起进群讨论DevExpress Universal Subscription拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。DevExpress Blazor UI组件v20.2日前已正式发布了,新版本集成了Visual Studio、增强Scheduler控件功能等,欢..._devexpressv20

随便推点

python——tensorflow——ValueError:Shape(None,1)and (None,7) are incompatible_valueerror: shapes (none, 7) and (none, 8) are inc_客院载论的博客-程序员宅基地

ValueError:Shape(None,1)and (None,7) are incompatible_valueerror: shapes (none, 7) and (none, 8) are incompatible

想成为黑客高手吗?! _xmming的博客-程序员宅基地

第一章------关于找软件 常用类软件: 黑白屋: http://www.play8.net/ 华军软件 http://www.newhua.com/ (根据物理位置自行选择速度快的镜像) 中国下载 http://download.com.cn/ (使用查找功能可找到大部份软件) 东丽在线 http://www.tjdl.net/softdown/ (不错的软件下载站,类似华军) 世纪下载 ht

教你几招:电脑故障应急处理宝典 - -_朝阳的博客-程序员宅基地

教你几招:电脑故障应急处理宝典 - -Tag: 电脑故障 应急 朋友们在使用电脑的过程中,难免会遇到许多的突发故障,这些故障的起因可能是软件原因造成的,也可能是硬件故障引发的,或是其它的因素……那么,我们这些初级的电脑用户们又该如何应对这些事件呢,请看下文: 遭遇停

CSS - BFC 、 IFC 和经典布局_css ifc bfc_kelly0721的博客-程序员宅基地

BFC、IFC、圣杯布局、双飞翼布局_css ifc bfc

Vue.js实战之利用vue-router实现跳转页面_vue router js跳转_Sky786905664的博客-程序员宅基地

对于单页应用,官方提供了vue-router进行路由跳转的处理,这篇文章主要给大家介绍了Vue.js实战之利用vue-router实现跳转页面的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。前言使用 Vue.js 做项目的时候,一个页面是由多个组件构成的,所以在跳转页面的时候,并不适合用传统的 href,于是 vue-router 应运而生。官方文档: h_vue router js跳转

关于联想电脑启动后没有网卡的故障(设备管理器内看不到网卡,网卡消失)_联想台式电脑 网卡突然不见了_rainfall007的博客-程序员宅基地

单位里有不少联想电脑,基本上装的都是win7-64位系统,安装的inode上网认证系统,遇到过几次启动后网卡不见了,无法联网,重启后也不恢复。后来发现是联想的网络唤醒功能的问题。进bios把网卡的网络唤醒和网络启动都关掉后,重启进入系统就可以看到网卡了,上网也正常了。win7系统里最好把网卡的节能模式关掉。..._联想台式电脑 网卡突然不见了

推荐文章

热门文章

相关标签