Android时间倒计时在网上一搜就一堆,而且也经常用到。备份一下,以便下次直接使用

1、首先我创建一个接口,为什么要创建一个接口呢?因为我是建立了一个类继承CountDownTimer。这样做的意义就是不用每次

需要用到的倒计时的时候不需要在Activity里面创建直接调用就可以了。

public interface OnCountDownTimeListener {
    void getCountDownTime(int time);
    void timeOver();

}

2、倒计时的实现类如下:

public class CountDownThread extends CountDownTimer {
    private final static  String TAG = CountDownThread.class.getSimpleName();
    /**
     * @param millisInFuture    The number of millis in the future from the call
     *                          to {@link #start()} until the countdown is done and {@link #onFinish()}
     *                          is called.
     * @param countDownInterval The interval along the way to receive
     *                          {@link #onTick(long)} callbacks.
     */

private OnCountDownTimeListener listener;

Handler mHandler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what){
                case 1:
//                    Log.i(TAG, "还剩"+msg.arg1+"秒");
                    listener.getCountDownTime(msg.arg1);
                    break;
                case 2:
//                    Log.i(TAG, "倒计时结束");
                    listener.timeOver();
                    break;
            }

}
    };

public CountDownThread(long millisInFuture, long countDownInterval) {
        super(millisInFuture, countDownInterval);
    }

public void setOnCountDownTimeListener(OnCountDownTimeListener listener){
        this.listener = listener;
    }

@Override
    public void onTick(long millisUntilFinished) {
//        Log.i(TAG, "还剩"+millisUntilFinished/1000+"秒");
        Message msg = new Message();
        msg.what = 1;
        msg.arg1 = (int)millisUntilFinished/1000;
        mHandler.sendMessage(msg);
    }

@Override
    public void onFinish() {

Message msg = new Message();
        msg.what = 2;
        mHandler.sendMessage(msg);
    }
}

3、在Activity的调用,其中使用了butterknife

public class CountDownActivity extends Activity implements OnCountDownTimeListener{

private final static String TAG = CountDownActivity.class.getSimpleName();
    private CountDownThread countDownThread;
    @BindView(R.id.count_down)
    TextView textView;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_count_down);
        ButterKnife.bind(this);
        startCountDownTime(5);
    }

//开始时间倒计时
    private void startCountDownTime(int time) {
        if (countDownThread != null) {
            countDownThread.cancel();
        }
        countDownThread = new CountDownThread(time * 1000, 1000);
        countDownThread.setOnCountDownTimeListener(this);
        countDownThread.start();
    }

@Override
    public void getCountDownTime(int time) {
        textView.setText(String.valueOf(time));
    }

@Override
    public void timeOver() {
        textView.setText(String.valueOf("倒计时结束"));
    }

}

4、相应的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">
    <TextView
        android:id="@+id/count_down"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hello world"/>
</LinearLayout>

Android 时间倒计时相关推荐

  1. android中倒计时控件CountDownTimer分析

    android中倒计时控件CountDownTimer分析1 示例代码 new CountDownTimer(10000, 1000) {public void onTick(long millisU ...

  2. Android时间与服务器同步方案

    转自: https://blog.csdn.net/qinci/article/details/70666631这个的吧?转发请注明来源吧?Android时间与服务器同步方法_飛舞的青春的博客-CSD ...

  3. android中倒计时动画,Android实现倒计时效果

    本文实例为大家分享了Android实现倒计时效果的具体代码,供大家参考,具体内容如下 一个倒计时的效果 先看效果图: 直接上代码: 这里是关于倒计时 -天时分秒-的逻辑判断 /** * 倒计时计算 * ...

  4. Android答题计时的代码,Android答题倒计时

    Android答题倒计时:讲一下我在做一个答题APP时涉及到倒计时时遇到的一个问题吧.碎片+CountDownTimer组成的一个答题,其中遇到的一个问题就是.这个题的倒计时在你手动滑动下一个题的时候 ...

  5. Android验证码倒计时实现方式总结

    Android验证码倒计时实现方式总结 几乎所有的APP里面都有验证码倒计时按钮,自己在项目中也尝试,简单总结为以下三种: 1.使用线程和Handler的方式,定时刷新倒计时数字,这种方式容易导致内存 ...

  6. android闹钟倒计时_如何在Android上使用闹钟,计时器和秒表

    android闹钟倒计时 Your Android device's built-in Clock app can serve as an alarm clock, a kitchen timer, ...

  7. Android 定时器+倒计时 仿淘宝秒杀

    目录结构 效果图: imageViewHolder public class imageViewHolder extends RecyclerView.ViewHolder {public Image ...

  8. Android 日期倒计时

    实现抢票或者秒杀之类的倒计时效果,可更改倒计时格式,需求:1天5小时8分钟22秒这种,完美解决手机息屏计时不准的问题(用wekLock) 本文章借鉴于Android定时器-做天数时间倒计时 wakeL ...

  9. android倒计时功能,android实现倒计时功能(开始、暂停、0秒结束)

    本文实例为大家分享了android实现倒计时功能的具体代码,供大家参考,具体内容如下 [思路]:通过 timer 执行周期延时的任务,handler 中将计时信息更新,并在计时结束时结束 timer ...

最新文章

  1. 打印modal框中在线生成的二维码
  2. redis -memcahe-mongo资料-windows定时重启计划
  3. php5安装mysql拓展_PHP7安装mysql的扩展让老版本PHP程序继续服役
  4. 十八般武艺玩转GaussDB(DWS)性能调优(三):好味道表定义
  5. 【opencv】实时人脸+眼睛+微笑检测
  6. 官宣!华为主导首个软件定义摄像机国际标准诞生
  7. Android Q功能
  8. 凸优化第九章无约束优化 9.3 梯度下降方法
  9. 区块链 PBFT 哪个节点 谁负责打包区块
  10. 华盛顿大学计算机专业gpa,华盛顿大学计算机专业基本信息全盘点 学习来这里就对了...
  11. Android Studio中Intent的一些相关知识
  12. 万豪 数据泄露 sql注入_如何防止数据库泄漏和注入
  13. 【转载】C/C++ 笔试面试(1)—— sizeof
  14. 文件系统层次结构标准和Linux上下载源代码配置编译安装
  15. bash shell实现并发多进程操作
  16. 风险预测模型评价第二弹:NRI的R语言计算
  17. “联想笔记本电脑的电池显示0%,充不进电” 解决方案
  18. 远光九天云平台 自主创新助力科技自强
  19. 如何高效的搜索github上面的资源
  20. 【AD620/OP07】高压电流采样电路设计方案

热门文章

  1. oom killer日志分析
  2. 微信小程序上传图片写法
  3. 两波形相位差的计算值_光纤耦合器怎么计算
  4. 2018年常见的13种APP推广方法,最后一种运营者必看!
  5. k型热电偶材料_热电偶是用什么材料做的
  6. Linux进程间通信详解(三) —— 消息队列及函数
  7. 在图片不被裁剪时opencv绕图片中任意点旋转任意角度
  8. Systemverilog的一个牛人总结
  9. 第6章 磁盘结构与磁盘划分
  10. java excel 字体大小_java操作Excel的poi的字体设置