我正在开发一个需要倒数计时器的游戏。
我需要能够暂停计时器,恢复倒计时并为当前的倒计时状态添加一些时间。
我查看了CountdownTimer
类及其方法,但似乎它没有所需的功能。
我需要建议 - 哪种组件最适合这种情况?
如何使用它?
可能的问题是什么?
Thread
? AsyncTask
? Timer
?
这个事情谁有经验?
我认为可以使用 Thread ,但使用 CountdownTimer 包装类更容易实现您的功能:
static class MyCountdownTimer {
long mCurrentMilisLeft;
long mInterval;
CountdownTimerWrapper mCountdownTimer;
class CountdownTimerWrapper extends CountDownTimer{
public CountdownTimerWrapper(long millisInFuture,long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
}
@Override
public void onTick(long millisUntilFinished) {
mCurrentMilisLeft = millisUntilFinished;
}
}
public MyCountdownTimer(long millisInFuture, long countDownInterval) {
set(millisInFuture,countDownInterval);
}
public void pause(){
mCountdownTimer.cancel();
}
public void resume(){
mCountdownTimer = new CountdownTimerWrapper(mCurrentMilisLeft, mInterval);
mCountdownTimer.start();
}
public void start(){
mCountdownTimer.start();
}
public void set(long millisInFuture, long countDownInterval){
mInterval = countDownInterval;
mCurrentMilisLeft = millisInFuture;
mCountdownTimer = new CountdownTimerWrapper(millisInFuture, countDownInterval);
}
}