-
為什么要用handler查看全部
-
handler是什么查看全部
-
拋出的異常查看全部
-
private HandlerThread thread;//HandlerThread解決多線程并發問題 private Handler handler; ... thread = new HandlerThread("name"); thread.start(); handler = new Handler(thread.getLooper()){ public void handleMessage(Message message){ ... }; }查看全部
-
線程間通信查看全部
-
handler原理查看全部
-
為什么只能通過handler更新UI查看全部
-
Handler是Android給我們提供用來更新UI的一套機制,也是一套消息處理機制,我們可以發送消息,也可以通過它處理消息。查看全部
-
學習步驟查看全部
-
threadlocal保存線程中的一些變量信息 通過threadlocal創建線程對象查看全部
-
handler負責發送消息,Looper負責接收Handler發送的消息,并直接把消息回傳給handler自己,MessageQueue就是一個存儲消息的容器查看全部
-
非UI線程能否更新UI --->剛啟動的時候,立即在非UI線程更新->不報錯。 --->休眠2s鐘以后,更新——————>報錯 更新UI-->會調用checkForRelayout()方法 -->invalidate()方法-->invalidate(true)方法,關注viewParent-->ViewRootImpl是ViewParent的實現類 --->p.invalidateChild()-->查看ViewRootImpl.invalidateChild()-->checkThread()方法-->判斷UI線程是否是當前線程,不想等拋出異常。 ViewRootImpl是onResume()方法才會創建。所以onCreate()方法中要延遲才可以。 handleResumeActivity()方法---》viewManager.addView()-->ViewRootImpl初始化。,關注viewParent-->ViewRootImpl是ViewParent的實現類查看全部
-
HandlerThread避免多線程導致空指針問題。 handlerthread 默認【創建一個looper然后和一handler關聯,那么所有的handleMessage方法是在一個子線程中進行,可以用handlerthread模擬一個異步任務,將主線程的任務發送個子線程,處理一些比較耗時操作查看全部
-
Handler與Looper,MessageQueue之間的關系(二)查看全部
-
非UI線程能否更新UI --->剛啟動的時候,立即在非UI線程更新->不報錯。 --->休眠2s鐘以后,更新——————>報錯 更新UI-->會調用checkForRelayout()方法 -->invalidate()方法-->invalidate(true)方法,關注viewParent-->ViewRootImpl是ViewParent的實現類查看全部
舉報
0/150
提交
取消