java - 如何将一个倒计时器嵌套在另一个倒计时器中?

标签 java android

所以我有两个倒计时器,我希望一个嵌套在另一个的 onFinish 中。我不想使用可运行程序,因为我觉得这对我的应用程序不利,因为它很难取消。这在执行中看起来相当简单,但我不断收到错误。

final CountDownTimer TheTimer;
    final CountDownTimer FinalTimer;

    TheTimer = new CountDownTimer((cdTime), 1000) {

        public void onTick(long millisUntilFinished) {

            button.setText(String.valueOf(millisUntilFinished));
            if(millisUntilFinished <= 10000){
                button.setVisibility(View.GONE);
            }

        }

        public void onFinish() {


            FinalTimer = new CountDownTimer(10000, 1000) {
                @Override
                public void onTick(long l) {

                }

                @Override
                public void onFinish() {

                }
            }.start();

        }
    }.start();

错误:无法为最终变量赋值。

然而,Ide 告诉我将其定为最终版本

Visual Aid

如果我让第二个计时器不是最终的,我会得到什么 What I get if I make the second timer not final

最佳答案

试试这个代码:

final CountDownTimer finalTimer = new CountDownTimer(1000, 1000){
    public void onTick(long l){
        //do Stuff
    }
    public void onFinish(){
        //doStuff
    }
};    
final CountDownTimer theTimer = new CountDownTimer((cdTime), 1000){    
    public void onTick(long millisUntilFinished){    
        button.setText(String.valueOf(millisUntilFinished));
        if(millisUntilFinished <= 10000){
            button.setVisibility(View.GONE);
        }    
    }    
    public void onFinish(){    
        finalTimer.start();    
    }
}.start();

尝试尽早设置最终变量以确保它们正确启动。对于 future 的问题:请尽量保持代码格式正确,并提供有关您遇到的问题的足够信息,例如错误代码等。

关于java - 如何将一个倒计时器嵌套在另一个倒计时器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49600021/

相关文章:

java - JMS 和 "transactional messages"

java - 在 Eclipse 上创建 Android 模块化应用程序

java - 如何从 double 中删除科学记数法

java - 代码编译,但不返回任何东西

android - 在模块之间共享依赖库

android - 如何在android的非 Activity 类中实现 "finish"之类的东西?

Android - 在运行时缩放 View 组(布局)

javascript - 从 get 方法中删除 %20 值

java - IntelliJ : (Keyboard shortcut to) jump to next/previous suggestion

java - 防止消息驱动 Bean 消耗消息[或]处理 Java EE 中的数据库连接失败