我正在开发一款需要倒数计时器的游戏。
我需要能够暂停计时器,恢复倒计时并为当前的倒计时状态添加一些时间。
我查看了CountdownTimer
类及其方法,但似乎它没有所需的功能。
我需要建议 - 哪种组件最适合这种情况?
如何使用它?
可能存在哪些问题?
Thread
? AsyncTask
? Timer
?
有没有人有这方面的经验?
答案 0 :(得分:2)
我认为可以使用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);
}
}