91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Handler的解析和使用

發布時間:2020-09-12 23:45:56 來源:網絡 閱讀:428 作者:lzwxx 欄目:網絡安全

1.handler為android中多線程間通信的一種機制,

@1android中只允許在UI線程(主線程)操作或改變UI,其他線程不能操作UI。

@2其他線程有刷新UI的需要,所以得告訴UI線程,這時候就用到Handler,在handeMessage方法中處理消息。

@3handler可以定義在主線程也可以定義在其他線程,作用不一樣。

@4與handler執行相關的類:Handler,Message,MessageQueue,Looper

UI線程:主線程,創建時會自動初始化一個Looper對象,也會創建一個消息隊列

Message:消息,其中包含了消息ID,消息處理對象以及處理的數據等,由MessageQueue統一列隊,終由Handler處理。

Handler:處理者,負責Message的發送及處理。使用Handler時,需要實現handleMessage(Message msg)方法來對特定的Message進行處理,例如更新UI等。

MessageQueue:消息隊列,用來存放Handler發送過來的消息,并按照FIFO規則執行。當然,存放Message并非實際意義的保存,而是將Message以鏈表的方式串聯起來的,等待Looper的抽取。

Looper:消息泵,不斷地從MessageQueue中抽取Message執行。因此,一個MessageQueue需要一個Looper。

Thread:線程,負責調度整個消息循環,即消息循環的執行場所。

2.handler的使用

@1用在主線程

---1-定義Handler對象,重寫handleMessage方法,在方法里面處理消息,更新UI

Handler的解析和使用

    private Handler mHanlder = new Handler(){        
        

        public void handleMessage(android.os.Message msg) {
            
            numberAdapter = new BlackNumberAdapter(getApplicationContext(), mList, mBnd);
            lv_blacknum.setAdapter(numberAdapter);
            
        };
        
    };

Handler的解析和使用

---2-在其他 線程發送消息,有時需要自己定義消息對象

mHanlder.sendEmptyMessage(BLACKNUM_PREPARED);

@2handler定義在子線程,需要自己創建Looper對象

----流程:

====1.調用Looper.prepare()為當前線程創建Looper對象,此時會自動創建MessageQueue消息隊列;2.創建Handler對象,重寫handleMessage方法;3.調用Looper.loop()方法啟動Looper消息循環


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宽甸| 闸北区| 池州市| 德庆县| 灯塔市| 贺州市| 溆浦县| 鄂伦春自治旗| 赣州市| 陵水| 溧水县| 旺苍县| 璧山县| 北京市| 梧州市| 罗山县| 岗巴县| 宣汉县| 邯郸县| 嵊泗县| 灵璧县| 新巴尔虎右旗| 洛南县| 抚州市| 惠水县| 浠水县| 兰考县| 萝北县| 巴彦淖尔市| 济宁市| 大竹县| 福泉市| 蓬安县| 泰州市| 承德市| 凌云县| 阿拉善右旗| 香格里拉县| 册亨县| 华阴市| 巴青县|