社区
Android
帖子详情
关于handler.post()的一点疑问
qq_25154819
2016-07-31 11:43:59
我们要WorkerThread处理一些耗时时间长的操作,在handler.post()这个方法中,既然把runnable对象run()方法中的代码又扔回去给MainThread处理了,那为何不直接写在MainThread里面算了?
...全文
224
5
打赏
收藏
关于handler.post()的一点疑问
我们要WorkerThread处理一些耗时时间长的操作,在handler.post()这个方法中,既然把runnable对象run()方法中的代码又扔回去给MainThread处理了,那为何不直接写在MainThread里面算了?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gexuehai1991
2016-08-02
打赏
举报
回复
二楼说得有道理
LoveWyf_
2016-08-02
打赏
举报
回复
handler.post()会把当前Message放到消息队列的最后,所以你在view.post()中可以获得view的宽高,直接在你所说的mainThread去获取宽高是获取不到的。不调用handler.post()可能会因为一些并发问题导致某些方法失效。最常见的例子便是listView.setSelection()方法,有时这个方法会失效,是因为在调用这个方法的时候主线程可能在做一些其他事情,导致这个方法出现问题,而在handler.post()中调用这个方法,让他添加到消息队列的最后执行,这样就避免了一些冲突。同时,handler.post()和handlerMessage其实都是被handler的dispatchMessage()方法调用,本质是差不多的。
xjz729827161
2016-08-01
打赏
举报
回复
handler.post(),只是提供一种选择,如果用handler的handleMessage来处理,需要实现的东西比较多,在某些场景仅仅需要执行某个特定的操作一次就够了,这时候用post明显要方便很多。同时,正如你所说post里面处理的runnable是在主线程执行的,所以可以刷新UI(一般也只是用来刷新UI),也一定不要做耗时操作。如果看到哪里在post里面做了耗时操作,不要疑惑为什么不放在主线程,只能是用法用错了。
ESC尛蜜蜂
2016-08-01
打赏
举报
回复
耗时放在子线程中,结果返回给MainThread,放在MainThread执行耗时会导致应用无响应
b87936260
2016-08-01
打赏
举报
回复
post到mainThread是一些UI操作,这些必须在主线程中做。如果这个run里面还有耗时操作,那就是你们写得有问题
Java网络爬虫EggJava.zip
作者非常希望能通过自己的努力,可以推动
一点
开源事业的发展,很希望可以为开源做出自己的一份贡献,更希望能够在一个深入发掘。Egg虽然还有很多不如人意的地方,但是作为在校大学生,会为大家及时解决并更新代码...
android
handler
的
post
,android
handler
.
post
和
handler
.sendMessage的区别和联系
现在大部分人都很熟悉
handler
...通过看源码发现,
post
这个方法是把任务r转成一个message放进了
handler
所在的线程中的messageQueue消息队列中,并且是立刻发送的消息,这样它既不是异步的也不是延时的,所以问题来了...
精通Android多线程视频教程
通过本课程的学习,让你...使用
Handler
发送
post
请求 3.使用
Handler
处理Message消息 4.
Handler
、Looper、MessageQueue三者的关系 5.UI线程
Handler
和工作线程
Handler
6.使用
Handler
Thread 7.更新UI的方法 8.使用AsyncTask
Handler
消息机制详解
Handler
机制是Android开发中最常见的机制,可以说贯穿整个Android,在探究
Handler
机制原理之前,我们先来捋一下用法1.
handler
.
post
(Runnable)2.
handler
.
post
delayed(Runnable,int)3.sendMessage(Message)4....
view.
post
原理,和
handler
.
post
的区别
延时两三百毫秒才能获取要宽高,原因就是上面的
疑问
一,我总觉得如果马上
post
的话,它根本还没有被measure,所以是不会有测量后的宽高值。但是现在的结果明显表明我的想法的错误的。那么究竟如何保证在View被measure...
Android
80,350
社区成员
91,288
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章