Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓游戏倒计时_Android_Timer_Countdown - Fatal编程技术网

Android 安卓游戏倒计时

Android 安卓游戏倒计时,android,timer,countdown,Android,Timer,Countdown,我正在做一个需要倒计时的游戏 我需要能够暂停计时器,恢复倒计时,并添加一些时间到当前倒计时状态 我已经看过了CountdownTimer类及其方法,但它似乎没有必要的特性 我需要建议-哪个组件最适合这种情况 如何使用它 可能的问题是什么 线程异步任务计时器 有人对此有经验吗?我认为可以使用线程,但使用CountdownTimer包装类更容易实现您的功能: static class MyCountdownTimer { long mCurrentMilisLeft; lo

我正在做一个需要倒计时的游戏

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

我已经看过了CountdownTimer类及其方法,但它似乎没有必要的特性

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

如何使用它

可能的问题是什么

线程
<代码>异步任务<代码>计时器


有人对此有经验吗?

我认为可以使用线程,但使用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);
    }

}