有点混淆这个,但应该有意义。 感谢您的帮助,我现在让我的应用程序显示自定义数字时钟和倒计时器(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);
}
答案 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;