Timer定时器的轮询操作bug修改

Timer对象在使用轮询操作时会出现轮询停不下来的情况,从而产生ANR

timer.schedule(任务task,延时时间,间隔时间) //轮询情况只需要改第三个参数

 

在界面onDestory或者onStop的时候一定要释放timer,避免造成内存泄露

防止为空判断

在只加了cancel的时候我发现偶尔会有线程无法停止的情况,看源码和资料有人说是因为task线程中还有其他任务没有执行完,cancel停止当前的线程,所有timer提供了purge()方法,官方释义:Removes all cancelled tasks from this timer’s task queue.意思就是purge方法会检查timer队列里标记为canceled的task,将对它的引用置为null,来释放内存引用

 

故,问题解决了!!!

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值