当前位置:   article > 正文

Android CountDownTimer注意事项_countdowntimer 暂停

countdowntimer 暂停

注意点

  1. CountDownTimer单位是毫秒。
  2. 判断时注意把毫秒转成秒,直接对比毫秒会有问题。
  3. start()开始后,调用cancel()再start(),不是暂停后继续而是会从开始倒计时。

示例代码

以一个导计时结束弹出提示框进行关机的例子,
CountDownPowerOff.java

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.CountDownTimer;
import android.util.Log;


public class CountDownPowerOff extends CountDownTimer {
    static private final long SHOW_POWER_OFF_SECONDS = 10L;
    AlertDialog alertDialog;
    Context context;

    public CountDownPowerOff(long millisInFuture, Context context) {
        super(millisInFuture, 1000L);
        this.context = context;
    }

    @Override
    public void onTick(long millisUntilFinished) {
        long secondsUntil = millisUntilFinished / 1000L;
        Log.d("", "倒计时关机:" + secondsUntil);
        // 注意这里是把毫秒除以1000后得到秒后再比较,因为millisUntilFinished大部分无法整除1000, 比如值为10071
        if (secondsUntil == SHOW_POWER_OFF_SECONDS) {
            if (alertDialog == null) {
                alertDialog = new AlertDialog.Builder(context)
                        .setTitle("倒计时关机")
                        .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                cancel();
                                Log.d("", "取消倒计时关机");
                            }
                        }).show();
            }
        }
        if (alertDialog != null) {
            if (!alertDialog.isShowing()) {
                alertDialog.show();
            }
            alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE).setText(secondsUntil + "秒后关机, 点击取消");
        }
    }

    @Override
    public void onFinish() {
        if (alertDialog != null) {
            cancel();
            alertDialog.cancel();
            // shutDown();
        }
    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
// 这里把秒转成毫秒
countDownPowerOff = new CountDownPowerOff(15L * 1000L, this);
countDownPowerOff.start();
  • 1
  • 2
  • 3

作者:帅得不敢出门

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/808964
推荐阅读
相关标签
  

闽ICP备14008679号