3

我正在开发一个需要倒数计时器的游戏。

我需要能够暂停计时器,恢复倒计时并为当前的倒计时状态添加一些时间。

我查看了CountdownTimer类及其方法,但似乎它没有所需的功能。

我需要建议 - 哪种组件最适合这种情况?

如何使用它?

可能的问题是什么?

Thread? AsyncTask? Timer?

这个事情谁有经验?

4

1 回答 1

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);
    }

}
于 2013-08-04T11:20:42.693 回答