handler.postDelayed(new Runnable()){ }运行在主线程吗
2024-10-19 13:37:01
答案:是的。
handler.postDelayed(new Runnable() {
@Override
public void run() {
tv_word.setVisibility(View.GONE);
}
},3000);
官方说法:
开启的runnable会在这个handler所依附线程中运行,而这个handler是在UI线程中创建的,所以
自然地依附在主线程中了。
postDelayed(new Runnable()) 而没有重新生成新的 New Thread()
小结
通常来说handler.postDelayed(new Runnable()){ }是为了刷新UI用的,handler实例化在主线程,postDelayed(new Runnable()){ }方法又依附于handler所在线程,所以就运行于主线程。即使这样我还是不理解,new Runnable()不是新开了一个线程吗?
原来我弄错了,如果是implements Runnable,像extends Thread一样,是新开了线程,但是现在只是new Runnable(){},是把Runnable对象以Message形式post到UI线程里的Looper中执行,现在真相大白了,知识点太容易混淆了。
最新文章
- json转换
- select中无法使用click的处理
- OAuth2授权原理
- [bzoj2243][SDOI2011]染色
- HttpServletRequest中得到各种信息
- centos的安装,网络的调试
- js webapp 滑动事件
- Ant 执行 YUICompressor
- 关于Linux下进程间使用共享内存和信号量通信的时的编译问题
- Encoding 分类: HDU 2015-06-25 21:56 9人阅读 评论(0) 收藏
- 第一好用的时间 日期插件(Adding a Timepicker to jQuery UI Datepicker)
- android学习日记03--常用控件ListView
- ubuntu glusterfs 配置调试
- [Twisted] Protocols协议和Protocol Factories 协议工厂
- 基于visual Studio2013解决C语言竞赛题之0518回文数
- ffmpeg错误:Invalid UE golomb code
- 服务器http://localhost:8080要求用户输入用户名和密码
- Ubuntu如何使用Vscode写C++代码
- Spring入门详细教程(二)
- Codeforces1076D. Edge Deletion(最短路树+bfs)
热门文章
- GeoServer 修改端口
- 扛把子组20191114-4 Beta发布用户使用报告
- 老男孩python 自学day09 函数开始
- Glibc编译报错:*** These critical programs are missing or too old: as ld gcc
- 数据降维-NMF非负矩阵分解
- PV、UV、IP、TPS、QPS、RPS等网络度量术语
- Chrom谷歌浏览器没网之最全解决办法之一
- 【JavaEE】之MyBatis动态SQL
- Linux下利用nginx实现负载均衡
- Hibernate注解之@Enumerated:针对枚举enum(转)