什么是Handler?
Handler可以發(fā)送和處理消息對象或Runnable對象,這些消息對象和Runnable對象與一個線程相關(guān)聯(lián)。每個Handler的實例都關(guān)聯(lián)了一個線程和線程的消息隊列。當(dāng)創(chuàng)建了一個Handler對象時,一個線程或消息隊列同時也被創(chuàng)建,該Handler對象將發(fā)送和處理這些消息或Runnable對象。
handler類有兩種主要用途:
執(zhí)行Runnable對象,還可以設(shè)置延遲。
兩個線程之間發(fā)送消息,主要用來給主線程發(fā)送消息更新UI。
為什么要用Handler
解決多線程并發(fā)問題,假設(shè)如果在一個activity中,有多個線程去更新ui,并且都沒有加鎖機制,那界面顯示肯定會不正常。于是andoird官方就封裝了一套更新ui的機制,也可以用handler來實現(xiàn)多個線程之間的消息發(fā)送。
如何使用Handler
handler常用的方法有以下這些:
post(Runnable) postAtTime(Runnable,long) postDelayed(Runnable,long) sendEmptyMessage(int) sendMessage(Message) sendMessageAtTime(Message,long) sendMessageDelayed(Message,long)
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26