今天,简单讲讲android如何使用
handler.removeCallbacksAndMessages(null)。
这个其实很简单,之前我也写了一篇博客将关于handler.removeMessages(int what)的使用,那个是删除handler的特定的消息,而如果需要删除handler所有的消息和回调函数呢?那就需要使用handler.removeCallbacksAndMessages(null)。
查api:
public final void removeCallbacksAndMessages (Object token)
Added in API level 1
Remove 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)的使用就讲完了。
就这么简单。