当前位置: 首页 > news >正文

Android - Handler使用post之后,Runnable没有执行

问题:子线程创建的Handler。如果 post 之后,在Handler.removeCallbacks(run)移除了,下次再使用Handler.postDelayed(Runnable)接口或者使用post时,Runnable是没有执行。导致没有收到消息。

解决办法:只有主线程创建的,remove之后,还可以post。

原因: 在主线程new一个Handler的时候,默认使用的是当前线程的Looper,就是系统为我们创建好的MainLooper。所以不需要自己在手动写prepare() 和 loop()函数。

如果在子线程中创建了一个Handler,那么就必须做三个操作: prepare()、 loop()、quit()

所以留意,new Handler时机,是否在主线程。

相关文章:

  • 地理探测器数据准备及驱动因素分析
  • SQL在云计算中的新角色:重新定义数据分析
  • 【阮一峰】14.命名空间
  • 学习总结2.18
  • ppt中如何快速自动地将整页标题和大段文字自动设计形状和颜色
  • kafka消费能力压测:使用官方工具
  • 大模型工具大比拼:SGLang、Ollama、VLLM、LLaMA.cpp 如何选择?
  • 刚性平衡机建模
  • [Android] Battery Guru - 手机电量管理优化
  • stm32rtc实时时钟详解文章
  • 学习查看 linux 关于进程的文件信息 cat /proc/968/status
  • LNMP+Zabbix安装部署(Zabbix6.0 Lnmp+Zabbix Installation and Deployment)
  • 02.05、链表求和
  • 【算法】回溯算法
  • spring boot知识点3
  • Dart 3.5 学习汇总(更新中)
  • 【Pandas】pandas Series last
  • Docker镜像拉取失败解决方案
  • centos7配置rsyslog日志服务器
  • 【阮一峰】5.函数
  • 东洋学人|滨田青陵:近代日本考古学第一人
  • 人民日报整版聚焦:铭记二战历史,传承深厚友谊
  • “半世纪来对无争议边界最深入袭击”:印巴冲突何以至此又如何收场?
  • 特朗普称不会为了和中国谈判而取消对华关税,外交部回应
  • 中国医药科技出版社回应发布“男性患子宫肌瘤”论文:正在核查
  • 胖东来关闭官网内容清空?工作人员:后台维护升级