子线程中使用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);    

你可能感兴趣的:(子线程中使用Toast或者更新UI(转))