赞
踩
Android应用开发中,想要在多少秒之后执行一个操作是非常常见的场景。使用线程或者计时器来执行固然是一个好方法,但是如果我们想实现倒计时并且还可以每秒钟更新一下UI,或许使用Google自带的CountDownTimer是一个更好更简单的选择。
代码如下:
- private CountDownTimer timer;
-
- //定义倒计时的时间,例如30秒
- private int waittingTimeout = 30;
-
- //定义方法,使用的时候直接调用方法即可开启倒计时
- private void countdown() {
- if (timer != null) {
- timer.cancel();
- }
-
- timer = new CountDownTimer(
- waittingTimeout * 1000, 1000) {
- @Override
- public void onTick(long millisUntilFinished) {
- //更新主线程的操作,例如更新页面中的文本,剩余x秒之类的
- binding.tvLeftWaitTime.setText(String.valueOf((int) millisUntilFinished / 1000));
- }
-
- @Override
- public void onFinish() {
- //倒计时完成之后的操作,例如关闭弹窗
- dismiss();
- }
- };
- timer.start();
- }
-
-
- //activity中可以放在onDestroy中销毁
- @Override
- protected void onDestroy() {
- if (timer != null) {
- timer.cancel();
- }
- super.onDestroy();
- }
-
-
- //如果是弹框中调用,可以放在dismiss中销毁
- @Override
- public void setOnDismissListener(OnDismissListener onDismissListener) {
- super.setOnDismissListener(onDismissListener);
- if (null != timer) {
- timer.cancel();
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。