Handler是否在主线程问题

Handler的实例化

Handler handler = new Handler();一般是默认使用当前线程的looper

  1. 要刷新UI,handler要用主线程的looper,如果当前是主线程 Handler handler = new handler(); 如果是在其他线程的话Handler handler = new Handler(Looper.getMainLooper());
  2. 不刷新UI,只是做消息处理。当前线程如果是主线程, Handler handler = new Handler(),不是主线程的话,Looper.prepare(),Handler handler = new Hnadler(); Looper.loop()。或者使用Handler handler = new Handler(Looper.getMainLooper())是放到主线程处理。
  • 如果实例化的时候用的是Looper.getMainLooper();;则是放到UI线程中去处理。
  • 由于只有主线程才默认Looper.perpare(); Looper.loop();,所以在其他线程中使用的时候要手动写上这两行代码;
posted @   Godfunc  阅读(1192)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 上周热点回顾(1.20-1.26)
点击右上角即可分享
微信分享提示