handler線程切換的原理 子線程如何獲得主線程的handler?
子線程如何獲得主線程的handler?可進(jìn)入!但是,不能在非UI線程(子線程)中創(chuàng)建處理程序。因此處理程序應(yīng)該在UI線程(主線程)中創(chuàng)建,然后在非UI線程(子線程)中使用。例如,您可以在UI線程(主線
子線程如何獲得主線程的handler?
可進(jìn)入!但是,不能在非UI線程(子線程)中創(chuàng)建處理程序。因此處理程序應(yīng)該在UI線程(主線程)中創(chuàng)建,然后在非UI線程(子線程)中使用。例如,您可以在UI線程(主線程)中創(chuàng)建:handler handler=new handler(),并在非UI線程(子線程)中使用它handler.sendEmptyMessage文件(0)通過這種方式,您可以通過多線程處理Android UI,這是異步處理UI的幾種方法之一。希望對(duì)你有所幫助
子線程中可以使用Handler嗎?
處理程序?qū)ο笤谥骶€程中創(chuàng)建,主線程中的消息隊(duì)列由處理程序?qū)ο蠊芾?。因?yàn)橥贿M(jìn)程中的線程共享內(nèi)存,所以子線程可以在主線程中獲取處理程序?qū)ο?。獲取處理程序,通過它可以將消息插入到主線程的消息隊(duì)列中。主線程的消息隊(duì)列將隊(duì)列中的消息對(duì)象轉(zhuǎn)到主線程進(jìn)行處理。
什么是異步消息處理,以及能否在子線程中創(chuàng)建handler?
處理程序?qū)ο蟮膶?shí)例必須位于活套準(zhǔn)備之后()。當(dāng)我們想把消息發(fā)送到有消息循環(huán)的線程時(shí),首先用消息循環(huán)獲取線程的Handler對(duì)象(或者先用消息循環(huán)的線程獲取Looper對(duì)象,然后用Looper對(duì)象構(gòu)造Handler對(duì)象),構(gòu)造一個(gè)消息對(duì)象,然后調(diào)用處理程序?qū)ο蟮膕endMessage方法。
子線程獲取的數(shù)據(jù)怎么在主線程使用?
Google已經(jīng)為您實(shí)現(xiàn)了這一點(diǎn),使用處理程序:例如,在主線程中創(chuàng)建一個(gè)handler子線程,并向這個(gè)handler=new handler(){@override public Boolean handlemessage(message MSG){switch}(味精什么){case 1://todo break}//message MSG=new in child thread message()味精什么= 1 msg.object=XX//還有arg1、arg2處理程序.sendMessage(消息)