将倒数计时器添加到系统时间

时间:2012-02-08 13:31:37

标签: android countdown

有点混淆这个,但应该有意义。 感谢您的帮助,我现在让我的应用程序显示自定义数字时钟和倒计时器(02:30:00倒计时)。

如何将02:30:00添加到当前时间,以便新的时钟字段显示当前时间+倒计时?

由于

DJ

这是我的数字时钟代码,我将偏移量放到广告2小时30分钟到时间......

@Override
    protected void onStart() {
        super.onStart();
        timer = new Timer("DigitalClock");
        Calendar calendar = Calendar.getInstance();
        final Runnable updateTask = new Runnable() {
            public void run() {
                countdown.setText(getCurrentTimeString());
            }
        };
    int msec = 999 - calendar.get(Calendar.MILLISECOND);
    timer.scheduleAtFixedRate(new TimerTask() {

        @Override
        public void run() {
            runOnUiThread(updateTask);
        }
    }, msec, 1000);
    }

    @Override
    protected void onStop() {
        super.onStop();
        timer.cancel();
        timer.purge();
        timer = null;
    }
    private String getCurrentTimeString() {
        Calendar calendar = Calendar.getInstance();
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE);
//      int second = calendar.get(Calendar.SECOND);
        return String.format("%02d:%02d", hour, minute);
    }

1 个答案:

答案 0 :(得分:0)

现在我理解了你的问题:p,我认为唯一的方法是重新实现DigitalClock。取its source code并通过在小时和分钟上添加偏移量来玩它。

更新:

我要做的是接受该代码并更改此部分:

    mTicker = new Runnable() {
            public void run() {
                if (mTickerStopped) return;
                mCalendar.setTimeInMillis(System.currentTimeMillis());
                setText(DateFormat.format(mFormat, mCalendar));
                invalidate();
                long now = SystemClock.uptimeMillis();
                long next = now + (1000 - now % 1000);
                mHandler.postAtTime(mTicker, next);
            }
        };
    mTicker.run();

将2:30:00转换为毫秒并将其添加到现在:

long now = SystemClock.uptimeMillis() + offset;