子线程中使用Toast或者更新UI(转)

Toast只能在主UI线程使用,使用下面的办法可以解决
第一种,使用Looper,不过这种办法会终止,子线程之后的代码

Looper.prepare();     
Toast.makeText(aActivity.this,"test",Toast.LENGTH_SHORT).show();  
Looper.loop();  

第二种,就是用 Handler Message

private final Handler msgHandler = new Handler(){  
    public void handleMessage(Message msg) {  
            switch (msg.arg1) {  
            case R.string.msg_not_network:  
                    Toast.makeText(getApplicationContext(), getResources().getString(R.string.msg_not_network), Toast.LENGTH_SHORT).show();  
                    break;  
            default:  
                    break;  
            }  
    }  

};

在子线程中使用

Message msg = msgHandler.obtainMessage();  
 msg.arg1 = R.string.msg_not_network;  
 msgHandler.sendMessage(msg);    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容