据我所知,反复调用Handler.postDelayed()
(再次在同一个runnable中调用postDelayed()
)可能会导致某些实例保持不被释放。
如果我使用View.postDelayed()
添加runnable,我是否有责任调用View.removeCallbacks()
以避免内存泄漏?或者,当视图被“销毁”时,是否可以从队列中删除runnable?
答案 0 :(得分:1)
或者视图是否可以从队列中删除runnable “破坏”?
这是你的责任。 runnable将挂起在队列中,直到你明确地删除它或者它被执行(runnable没有在队列中发布它自己)。我强烈建议你致电removeCallbacks
。如果您是View的子类,则可以使用onDetachedFromWindow()