![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Handler
文章平均质量分 82
与Handler相关
今晚打老虎666
这个作者很懒,什么都没留下…
展开
-
IdleHander
1.Activity启动优化: onCreate, onStart,onResume 中耗时较短但非必要的代码可以放到IdleHandler 中执行,减少启动时间2.想要一个view绘制完成之后添加其他依赖于这个view的view,当然这个view的post方法也能实现,区别就是前者会在消息队列空闲时执行。3.发生一个返回true的idleHandler ,在里面让某个view不停闪烁,这样当用户发吴时就可以诱导用户点击这个view,这也是种很酷的操作。原创 2023-12-31 19:35:33 · 364 阅读 · 0 评论 -
epoll机制
最早的时候,linux的(请求)通知机制是请求方不停地去轮询发送请求,也就是每隔几秒就会发送请求,这种方式太损耗发送方的性能和资源了。于是就改为第二种方式,也就是当请求方发送请求之后,就会阻塞:一直等待接收方,直到接收方把相应数据消息返回回来,发送方才关闭请求。原创 2023-12-31 13:17:33 · 383 阅读 · 0 评论 -
Handler对message的管理为什么使用享元设计模式
享元模式是一种结构型的设计模式。它的主要目的是通过共享对象来减少系统种对象的数量,其本质就是缓存共享对象,降低内存消耗。原创 2023-12-24 22:10:39 · 402 阅读 · 0 评论 -
应该如何在子线程准确创建Handler
我们已经知道Handler发送消息,处理消息的机制了。ActivityThread在main方法中,为当前线程创建一个looper,一个messagequeue,并且通过调用Looper的loop方法,开启死循环不断地从messagequeue里面去取消息。当handler通过sendmessage的方法把消息添加到消息队列中,主线程的死循环就会拿到消息,进而做一系列的事情。通常是在主线程中调用handler的改造函数,创建一个匿名内部类。那么在子线程中该如何new 一个handler并且让他正常工作呢。原创 2023-12-24 20:38:50 · 1349 阅读 · 0 评论 -
Handler为什么会导致内存泄漏?其他的内部类没有这个问题?
在ActivityThread的main方法里面调用 Looper.loop()执行死循环,死循环首先执行Message msg = queue.next(),只有拿到对应msg后,才会执行handler的dispatchMessage方法,最后处理完消息后执行message的recycleUnchecked方法,target = null,message持有的handler采会被释放。我们已经知道了Handler是匿名内部类,匿名内部类持有外部类的对象,handler持有activity。原创 2023-12-21 20:47:01 · 941 阅读 · 0 评论 -
Handler是怎么实现跨线程通信的
Handler的消息发送,和消息获取机制原创 2023-12-20 22:32:07 · 1079 阅读 · 0 评论