android handler.removeCallbacksAndMessages(null)的使用
16lz
2021-01-23
今天,简单讲讲android如何使用
handler.removeCallbacksAndMessages(null)。
这个其实很简单,之前我也写了一篇博客将关于handler.removeMessages(int what)的使用,那个是删除handler的特定的消息,而如果需要删除handler所有的消息和回调函数呢?那就需要使用handler.removeCallbacksAndMessages(null)。
查api:
public final void removeCallbacksAndMessages (Object token)
Added in API level 1Remove any pending posts of callbacks and sent messages whose obj is token. If token is null, all callbacks and messages will be removed.
这是google文档解释,英语不好的请用有道翻译,
删除任何悬而未决的帖子回调函数和发送消息的obj令牌。如果令牌是空的,所有的回调函数和消息将被删除
当然这个翻译不太准确,意思就是说当参数为null时,删除所有回调函数和message
这样做的好处是在Acticity退出的时候,可以避免内存泄露
简单讲讲,就是在Acticity退出时最好调用handler.removeCallbacksAndMessages(null),移除handler的所有消息,避免内存泄漏。记住调用handler.removeCallbacksAndMessages(null)只会移除当前handler的所有消息,如何存在多个handler,需要每一个handler都调用一次。
android handler.removeCallbacksAndMessages(null)的使用就讲完了。
就这么简单。
更多相关文章
- UML详解:解析Android消息处理机制:Handler/Thread/Looper & Messag
- Android仿QQ消息列表ListView滑动删除效果
- Android EventBus 传递消息
- [Android] 监听系统网络连接打开或者关闭的消息
- android屏幕监听,手机是否处于锁屏状态,在锁屏之上弹出Toast.makeT
- 【Android】Android消息处理机制
- Android主线程消息循环
- Android消息通知-Notification