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