什么是Handler?

Handler可以發(fā)送和處理消息對(duì)象或Runnable對(duì)象,這些消息對(duì)象和Runnable對(duì)象與一個(gè)線程相關(guān)聯(lián)。每個(gè)Handler的實(shí)例都關(guān)聯(lián)了一個(gè)線程和線程的消息隊(duì)列。當(dāng)創(chuàng)建了一個(gè)Handler對(duì)象時(shí),一個(gè)線程或消息隊(duì)列同時(shí)也被創(chuàng)建,該Handler對(duì)象將發(fā)送和處理這些消息或Runnable對(duì)象。

handler類(lèi)有兩種主要用途:

  • 執(zhí)行Runnable對(duì)象,還可以設(shè)置延遲。

  • 兩個(gè)線程之間發(fā)送消息,主要用來(lái)給主線程發(fā)送消息更新UI。

為什么要用Handler

解決多線程并發(fā)問(wèn)題,假設(shè)如果在一個(gè)activity中,有多個(gè)線程去更新ui,并且都沒(méi)有加鎖機(jī)制,那界面顯示肯定會(huì)不正常。于是andoird官方就封裝了一套更新ui的機(jī)制,也可以用handler來(lái)實(shí)現(xiàn)多個(gè)線程之間的消息發(fā)送。

如何使用Handler

handler常用的方法有以下這些:

post(Runnable)
postAtTime(Runnable,long)
postDelayed(Runnable,long)
sendEmptyMessage(int)
sendMessage(Message)
sendMessageAtTime(Message,long)
sendMessageDelayed(Message,long)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式