秒殺倒計時需求的實現

敲黑板 全程高能

 /**
 * 後臺返回的是秒   開課時間減去現在的時間等於剩餘的時間
 */
 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--;
                }
            }
        }
    }

希望我的分享對大家有所幫助

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