android FATAL EXCEPTION: Thread - 101 错误问题

  最近遇到一个错误,小错误,但有可能经常不注意的地方,我们都知道大多数情况下我们都是在子线程进行耗时操作,在主线程更新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刷新就可以了

你可能感兴趣的:(android FATAL EXCEPTION: Thread - 101 错误问题)