如果使用View.postDelayed(),是否会自动删除runnables

时间:2015-12-15 15:46:01

标签: android

据我所知,反复调用Handler.postDelayed()(再次在同一个runnable中调用postDelayed())可能会导致某些实例保持不被释放。

如果我使用View.postDelayed()添加runnable,我是否有责任调用View.removeCallbacks()以避免内存泄漏?或者,当视图被“销毁”时,是否可以从队列中删除runnable?

1 个答案:

答案 0 :(得分:1)

  

或者视图是否可以从队列中删除runnable   “破坏”?

这是你的责任。 runnable将挂起在队列中,直到你明确地删除它或者它被执行(runnable没有在队列中发布它自己)。我强烈建议你致电removeCallbacks。如果您是View的子类,则可以使用onDetachedFromWindow()