Handler使用

主要用于異步處理: 存在于線(xiàn)程中
開(kāi)啟子線(xiàn)程:異步處理


image.png
image.png

主要接受子線(xiàn)程發(fā)送的數(shù)據(jù),并用此數(shù)據(jù)配合主線(xiàn)程更新UI

···
//1.創(chuàng)建Handler對(duì)象
private Handler handler=new Handler(){
//2.重寫(xiě)handleMessage
public void handleMessage(android.os.Message msg) {
5.獲取消息:
String data= msg.obj;
Toast.makeText(getApplicationContext(), data, 1).show();
tv.setText("這是Hander")
}
};


在子線(xiàn)程:
String s='你好';
3.創(chuàng)建消息對(duì)象
Messge message = new Message();
message.obj=data;
message.what=10086; //消息編號(hào)

4.發(fā)送消息
mHandler.sendMessage(message);

···
---------------------handler--------------------
···
switch (msg.what) {
case 10086:
String data2=(String) msg.obj;
tv.setText(data2);
break;
case 10087:
Integer data3=(Integer) msg.obj;
tv.setText(data3+"");
break;

    default:
        break;
    }

···
··················子線(xiàn)程···························
···
new Thread(new Runnable() {

    @Override
    public void run() {
        try {

//
Thread.sleep(3000);

            String data="你好";
            //4.創(chuàng)建Message
            Message message = new Message();
            message.obj=data;
            message.what=10086;//編號(hào)
            //3.發(fā)送消息
            handler.sendMessage(message);
            handler.sendEmptyMessage(10086);
            handler.sendMessageDelayed(message, 2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }           
    }
}).start();
int data=12542;//主線(xiàn)程 先顯示
Message message = new Message();
message.obj=data;
message.what=10087;

// //3.發(fā)送消息
handler.sendMessage(message);

···
*****************Handler****開(kāi)啟子線(xiàn)程***************************
private Handler handler=new Handler(){
public void handleMessage(android.os.Message msg) {
// //2.重寫(xiě)handleMessage
// //獲取消息

    switch (msg.what) {
    case 10086:
        String data2=(String) msg.obj;
        tv.setText(data2);
        break;
    case 10087:
new Thread(new Runnable() {
    
    @Override
    public void run() {
    try {
        Thread.sleep(3000);
        
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
        
        
    }
}).start();
        Integer data3=(Integer) msg.obj;
        tv.setText(data3+"");
        break;

    default:
        break;
    }
};

};

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容