简单实现Android倒计时功能
2017-08-04 16:15
417 查看
这里列举了一个简单实现倒计时的例子Timer+Handler。
首先创建一个Timer对象,并设立一个倒计时开始时间recLen
一个Timer是可以开启很多任务的,每个任务都用一个TimerTask表示。因此需要创建一个自定义的TimerTask用来实现自己的需求,更重要的是不用销毁Timer从而可以创建多个TimerTask。
倒计时开始,我们用Hanlder进行UI更新
在代码相应位置调用计时器开启
这里需要注意的是,当上述代码中myTimerTask.cancel() 改为 timber.cancel(),那么再次调用timer的schedule方法会报异常
java.lang.IllegalStateException: TimerTask is scheduled already是因为Timer已经被cancel,不能再调用schedule方法了,我们可以用TimerTask的cancel方法,这样只是关闭了一个task而不会关闭掉整个Timer。
首先创建一个Timer对象,并设立一个倒计时开始时间recLen
Timer timer = new Timer(); private int recLen = 120;
一个Timer是可以开启很多任务的,每个任务都用一个TimerTask表示。因此需要创建一个自定义的TimerTask用来实现自己的需求,更重要的是不用销毁Timer从而可以创建多个TimerTask。
class MyTimerTask extends TimerTask{ @Override public void run() { recLen--; Message message = new Message(); message.what = 1; handler.sendMessage(message); } }
倒计时开始,我们用Hanlder进行UI更新
final Handler handler = new Handler(){ @Override public void handleMessage(Message msg){ switch (msg.what) { case 1: codeBtn.setText(recLen+"s"); if(recLen < 0){ if (myTimerTask!=null) { myTimerTask.cancel(); myTimerTask = null; } isWaitCode = false; }else{ isWaitCode = true; } showUI(); } } };
在代码相应位置调用计时器开启
myTimerTask = new MyTimerTask(); timer.schedule(myTimerTask, 1000, 1000);
这里需要注意的是,当上述代码中myTimerTask.cancel() 改为 timber.cancel(),那么再次调用timer的schedule方法会报异常
java.lang.IllegalStateException: TimerTask is scheduled already是因为Timer已经被cancel,不能再调用schedule方法了,我们可以用TimerTask的cancel方法,这样只是关闭了一个task而不会关闭掉整个Timer。
相关文章推荐
- 【Android】倒计时功能简单实现及日期工具类分享
- Android实现简单的倒计时功能
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- 简单的JS实现按钮触发倒计时功能
- android-基础知识:实现简单的拨打电话功能_intent_study
- android倒计时功能的实现(CountDownTimer)
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- Android asmack 简单功能的实现
- android 简单的两步实现Play上的文本伸缩功能
- Android广播事件机制及应用(实现简单的定时提醒功能)
- Android菜鸟笔记-利用CountDownTimer实现倒计时功能
- android实现简单的路线导航功能
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- 简单几行javascript代码,实现动态倒计时功能
- 【Android2D游戏开发十六】(上文之触摸屏手势)详解Android Gesture 手势操作!利用手势实现一个简单切换图片的功能!
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- 16—【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能
- android倒计时功能的实现(CountDownTimer)
- android倒计时功能的实现(CountDownTimer)