君不见长松卧壑困风霜,时来屹立扶明堂。这篇文章主要讲述Android 计时器及TimerTask is scheduled already的Bug处理相关的知识,希望能为你提供帮助。
android 计时器开发需要学习两个知识点:1.Timer
2.TimerTask。需要注意的是,每次调用Timer时,必须新实例化一个TimerTask对象(参考黑崎焚天解决了我的这个Bug),那就要求Timer执行完,释放掉当前TimerTask.实现代码如下:
public class HXTimer{private int recLen=15; //倒计时时长 private TimerTask timerTask=null; //定时任务 privateHandler mHandler=null; private Timer timer=null; //计时器publicHXTimer(int recLen, long delay, long period, Handler mHandler){ this.recLen=recLen; this.mHandler=mHandler; ; timer=new Timer(); getTimerTastInstance(); timer.schedule(timerTask,delay,period); } //获取一个定时任务实例 private voidgetTimerTastInstance(){ timerTask=new TimerTask() { @Override public void run() { recLen--; if(recLen < = 1){ timer.cancel(); } if(mHandler!=null) { Message message = new Message(); Bundle bundle = new Bundle(); bundle.putInt("recLen", recLen); message.setData(bundle); message.what = 2000; mHandler.sendMessage(message); } } }; } public void cancel(){ if(timerTask!=null) { timerTask.cancel(); timerTask = null; } if(timer!=null) { timer=null; }} }
【Android 计时器及TimerTask is scheduled already的Bug处理】
推荐阅读
- Android 监听屏幕锁屏&用户解锁
- Dapper:安装Dapper时报错
- 各种安卓模拟器连接Adb
- interface21 - web - ContextLoaderListener(Spring Web Application Context加载流程)
- [Android开发]合集(随时更新)
- Android 获取 debug SHA1和发行版SHA1
- Keep i2020-12-31 459次浏览原文mybatis通用mapper动态查询表名
- idea报错 Error creating bean with name 'requestMappingHandlerMapping' defined in class path re
- SQL Server SUM()函数示例图解