-
为什么要用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
提交
取消