秒杀倒计时需求的实现

敲黑板 全程高能

 /**
 * 后台返回的是秒   开课时间减去现在的时间等于剩余的时间
 */
 int nexttime = data.getNexttime(); 
 int days = nexttime / 3600 / 24;
 int hours = nexttime / 3600 % 24;
 int minutes = nexttime / 60 % 60;
 int seconds = nexttime % 60;
 /**
 * 开一个Handler去让他倒计时间
 */
 private Handler timeHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if (msg.what == 1) {
                computeTime();
                daysTv.setText(days + "");
                hoursTv.setText(hours + "");
                minutesTv.setText(minutes + "");
                if (days <= 0 && hours <= 0 && minutes <= 0 && seconds <= 0) {
                    rl_next_time.setVisibility(View.GONE);
                }
            }
        }
    };
/**
 * onCreate中执行此方法
 */
private void startRun() {
        new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                while (isRun) {
                    try {
                        Thread.sleep(1000); // sleep 1000ms
                        Message message = Message.obtain();
                        message.what = 1;
                        timeHandler.sendMessage(message);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }).start();
    }
 /**
     * 倒计时计算
     */
    private void computeTime() {
        seconds--;
        if (seconds < 0) {
            minutes--;
            seconds = 59;
            if (minutes < 0) {
                minutes = 59;
                hours--;
                if (hours < 0) {
                    // 倒计时结束
                    hours = 23;
                    days--;
                }
            }
        }
    }

希望我的分享对大家有所帮助

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章