Android中removeCallbacks失效原因
在Android开发中会使用Handle的removeCallbacks函数,该函数功能为:
但实际工作中有时会出现removeCallbacks无效,解决它。
图:两个按钮,一个将Runnable加到消息队列中,一个将Runnable从消息队列中移除。该Runnable每3秒钟打印一次日志。
码:
结果:
(1)start –> 输出 –> end –> 停止输出
(2)start –> 输出 –> BackGround –> Front –> 继续输出
当Activity进入后台运行后再转入前台运行,removeCallbacks无法将updateThread从message queue中移除。
这是为什么呢?
在Activity由前台转后台过程中,线程是一直在运行的,但是当Activity转入前台时会重新定义Runnable updateThread;也就是说此时从message queue移除的updateThread与原先加入message queue中的updateThread并非是同一个对象。如果把updateThread定义为静态的则removeCallbacks不会失效,如图:
此时,post,postDelayed,removeCallback面对的是同一个handler,updateThread,因此能够实现remove。
这个原因即使是正确的也是表面原因,具体原因需要深入底层机制去了解,求解中。。。
转载于:https://www.cnblogs.com/wyinan/archive/2011/11/07/2239066.html
Android中removeCallbacks失效原因相关推荐
- Android OOM出现常见原因及解决办法
手机在运行应用的时候,一直在崩溃,而这个异常就是OutOfMemory的错误,简称为OOM, 搞得我们也是极其的崩溃,最后 ,我们是通过网上搜集资料和代码走查的方式来优化解决的,这里,我就把我们收集到 ...
- MySQL索引失效原因,SQL查询语句不走索引原因
前言 日常工作中索引失效原因很多,这个需要平时的日积月累,不断学习,才能更正确的发挥索引的作用,下面简单总结一些索引失效原因. 1. 隐式的类型转换,索引失效 select * from test w ...
- Android 中内存泄漏的原因和解决方案
之前研究过一段时间关于 Android 内存泄漏的知识,大致了解了导致内存泄漏的一些原因,但是没有深入去探究,很多细节也理解的不够透彻,基本上处于一种似懂非懂的状态,最近又研究了一波,发现有很多新的收 ...
- unity3d shader编程中GrabPass 在某些android手机上失效的解决方案
unity3d shader编程中GrabPass 在某些android手机上失效的解决方案 参考文章: (1)unity3d shader编程中GrabPass 在某些android手机上失效的解决 ...
- SpringBoot 中@Autowired 注入失效原因及解决方法
SpringBoot 中@Autowired 注入失效原因及解决方法 1.原因分析 1.1 包没有被扫描到通过@Autowired注入的类所在的包路径不在Application启动类所在的包/子包路径 ...
- Android中app卡顿原因分析示例
http://www.cnblogs.com/zhucai/p/weibo-graphics-performance-analyse.html 朱才 专注于Android图形动画 MIUI工程师 博客 ...
- Android 中的卡顿丢帧原因概述 - 低内存篇
在Android 中的卡顿丢帧原因概述 - 系统篇 这篇文章中 , 实际案例这里我们有列举一些由于系统低内存导致的卡顿 , 由于 Android 低内存对整机性能影响比较大 , 所以单独写一篇文章 , ...
- Android代码中setvisibility失效了?
一.问题现象 最近在开发过程中遇到了在代码中setvisibility失效的问题,在网上查了好多资料都没有解决我的问题 二.发生背景 项目是MVVM架构,使用了databinding,想在tablay ...
- OpenCv中,waitkey()函数失效原因
OepnCv库中,waitkey函数失效原因 情景描述 原因 HighGUI 函数 情景描述 在写一个自动化脚本,然后再某一个循环里,使用了如下代码: while True:# ord 函数, 根据键 ...
最新文章
- ATLAS入门篇之HoverMenuExtender控件编程(2)
- AVA 8 :从永久区(PermGen)到元空间(Metaspace)
- selenium2与python自动化6-select下拉框
- 使用POI进行数据导出excel时的OOM服务挂掉,cpu飙升的问题
- linux考试基础知识测验
- 做大公司的螺丝钉 vs 当小公司的多面手
- 代码的坏味道:控制结构嵌套太深
- 十八般武艺玩转GaussDB(DWS)性能调优:路径干预
- .Net 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等) 2
- Python自动化办公之Word,超全总结【建议收藏】
- ios签名php在线监控,IOS无需签名无需越狱H5网页在线封装APP教程
- AI 人工智能学习之泰勒公式与拉格朗日乘数法
- AutoCAD2014的安装
- html5谷歌地图,谷歌地图API和HTML 5
- 陈婉芬老师的精髓金玉良言----相信篇,观念篇
- Cadence Allegro 如何添加Artwork光绘底片文件?
- ps怎么给图片加透明边框
- Android studio诗词app古诗词中国风记事本ui设计中国古诗词
- 2022卡塔尔世界杯 | 致我们每个人那份绿茵场上的足球梦
- 条纹噪声图片_一种红外图像条纹噪声滤波方法与流程