最近在写定时更新播放器进度条的时候,发现播放结束时停止Timer和TimerTask之后,Timer还在运行,网上找了下原因,TimerTask的cancel方法一次只取消一个Task,这就会造成内存泄露,怎么解决这个问题呢?Timber还给我们提供了另外一个少有人知的方法purge()。
这个方法是这么解释的:Removes all cancelled tasks from this timer’s task queue.意思就是purge方法会检查timer队列里标记为canceled的task,将对它的引用置为null,来释放内存引用。
果然在Timer的cancel方法之后调用purge方法就能解决Timer停不掉的问题了。赶紧拿起烂笔头记录一下。/(ㄒoㄒ)/~~