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


發佈了26 篇原創文章 · 獲贊 3 · 訪問量 28萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章