Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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_Runnable_Countdown - Fatal编程技术网

Android删除可运行回调

Android删除可运行回调,android,runnable,countdown,Android,Runnable,Countdown,我正在设计一个可运行的奖金,这样,对于每个问题,如果用户可以提前完成问题,每个问题的剩余时间都有一个奖金分数 代码: 问题: 如果用户超过奖金期限,即倒计时达到0,当用户开始另一个问题时,奖金倒计时可以顺利运行,并在结束时被删除。但是,如果用户可以提前完成该问题,那么对于下一个问题,倒计时将跳过一些数字并快速降到0 我想问,如何修改代码,以便在开始新问题之前正确删除runnable 非常感谢 我很喜欢你的问题,我试着回答并以此为基础。。。因此,我编写了一些代码,用一个简单的通知回调机制,在一个单

我正在设计一个可运行的奖金,这样,对于每个问题,如果用户可以提前完成问题,每个问题的剩余时间都有一个奖金分数

代码: 问题: 如果用户超过奖金期限,即倒计时达到0,当用户开始另一个问题时,奖金倒计时可以顺利运行,并在结束时被删除。但是,如果用户可以提前完成该问题,那么对于下一个问题,倒计时将跳过一些数字并快速降到0

我想问,如何修改代码,以便在开始新问题之前正确删除runnable


非常感谢

我很喜欢你的问题,我试着回答并以此为基础。。。因此,我编写了一些代码,用一个简单的通知回调机制,在一个单独的线程中管理这些计时器

有一个QuestionTimer类,它有一个简单的接口,以线程安全的方式处理计时问题,还有一个活动(MainActivity)来演示如何使用它。QuestionTimer通过回调为其侦听器提供剩余时间,因此您可以轻松地将其添加为奖励,或者为下一个问题添加更多时间

您可以在此处找到代码:


希望这有帮助

哇,谢谢你的详细回复!我将暂时研究这个领域,因为这个领域对我来说很新。真的非常感谢!
private Runnable Run_bonus_countdownHandler = new Runnable() 
{
    @Override
    public void run() 
    {
        if (game_pause ==false)
        {                   
            bonus_time_remaining = Math.max((bonus_time_remaining - 10),0);
            bonus_countdownHandler.postDelayed(this, 10);
            tv_bonus.setText("" + bonus_time_remaining);

            if (bonus_time_remaining == 0)
            {
                tv_bonus.setText("0");
                bonus_countdownHandler.removeCallbacks(this);
            }               
        }
        else
        {

        }
    }
};