-
handler.postDelayed查看全部
-
老師完全是神呀。。查看全部
-
Handler查看全部
-
Handler是android中的一套更新UI的機制, 同時也是消息處理機制,android中UI的處理和Activity的一些傳遞都是通過Handler處理查看全部
-
handler負責(zé)發(fā)送消息,Looper負責(zé)接收Handler發(fā)送的消息,并直接把消息回傳給Handler自己, MessageQueue就是一個存儲消息的容器查看全部
-
一個handler允許去發(fā)送以及處理一個runable對象與一個線程的message Queue關(guān)聯(lián),每個handler實例與一個帶有messageQueue的線程綁定,當(dāng)創(chuàng)建一個handler的時候他默認的會綁定到messagequeue,從此時開始它將會傳遞message和runables到messagequeue 當(dāng)一個進程被創(chuàng)建的時候,在main線程中會默認的創(chuàng)建一個looper,這個looper就已經(jīng)和messagequeue和UI線程聯(lián)系,主線程管理的是頂級的應(yīng)用對象,例如Activity,broadcast receiver,和所有所創(chuàng)建的窗口查看全部
-
handler是android給我們提供用來更新UI和消息處理的機制,我們可以發(fā)送消息,也可以通過它處理消息查看全部
-
handler.post(new runnable(原來這里面就可以直接更新UI啊))查看全部
-
handler是android給我們提供用來更新UI的一套機制,也是一套消息處理機制,我們可以用它來發(fā)送消息,也可以通過它來處理消息查看全部
-
為什么要用handle?查看全部
-
在checkThread方法中,如果mThread(在UI線程中創(chuàng)建的)不等于當(dāng)前線程的時候就會爆出異常 在子線程中創(chuàng)建一個handler的時候要指定一個looper對象,否則拋出異常 因為在子線程中并沒有指定looper對象,所以handler所調(diào)用的mLooper=Looper.myLooper();得到的是null查看全部
-
所有更新UI的操作,都要使用view的invalidate方法 settext方法中也使用了invalidate方法 invalidate(true) 判斷UI線程 invalidateChild(this,null)中調(diào)用invalidateChildInParent方法 中使用checkThread,檢查當(dāng)前更新UI的操作是否在主線程之中 在Onresume方法中創(chuàng)建viewrootmp oncreate方法在onresume方法之前,所以在oncreate方法中沒有檢測子線程是否與UI線程相等查看全部
-
更新UI的四種方法,runonUIThread方法,handler post方法,handler sendmessage方法,view post方法(AsyncTask中可以使用post方法中更新UI)查看全部
-
主線程與子線程之間的信息交互: 創(chuàng)建主線程的handler 向子線程threadhandler發(fā)送消息 HandlerThread thread = new HandlerThread("handlerThread"); thread.start(); threadhandler=new Handler(thread.getlooper()){ } 向主線程中handler發(fā)送handler查看全部
-
New HandlerThread("handler thread") handler=new Handler(thread.getlooper()){ } HandlerThread是一個Thread類,判斷在looper和線程狀態(tài)的并集為空的時候令線程等待,,執(zhí)行run方法,調(diào)用looper.prepare方法,定義mlooper=looper.myLooper();調(diào)用notifyall() 并返回一個looper對象查看全部
舉報
0/150
提交
取消