Java-倒数计时器延迟-Android

Java-倒数计时器延迟-Android,第1张

概述我正在制作一个国际象棋时钟,但我需要延迟一下(例如,它需要等待10秒钟才能计数).我为此使用了处理程序,但是如果在10秒钟内单击按钮,则什么也没有发生.请帮忙!谢谢!我的代码:mHandler.postDelayed(newRunnable(){publicvoidrun(){

我正在制作一个国际象棋时钟,但我需要延迟一下(例如,它需要等待10秒钟才能计数).我为此使用了处理程序,但是如果在10秒钟内单击按钮,则什么也没有发生.请帮忙!谢谢!
我的代码:

    mHandler.postDelayed(new Runnable() {                        public voID run() {                            // count down timer start                            timer2 = new CountDownTimer(totalSeconds, Integer.parseInt(delay.getText().toString())) {                                public voID onTick(long millisUntilFinished) {                                    secondsTimer = (int) (millisUntilFinished / 1000) % 60;                                    minutesTimer = (int) ((millisUntilFinished / (1000 * 60)) % 60);                                    hoursTimer = (int) ((millisUntilFinished / (1000 * 60 * 60)) % 24);                                    person2.setText(hoursTimer + ":" + minutesTimer + ":" + secondsTimer);                                }                                public voID onFinish() {                                    person2.setText("Time Up!");                                    person2.setBackgroundcolor(color.RED);                                    mp.start();                                }                            }.start();                        }                    }, finalDelay);

我需要一个延迟,但是我不想锁定UI并使应用程序无响应,因为它现在正在使用处理程序进行 *** 作.任何帮助将不胜感激!提前致谢!

解决方法:

我认为您不应该将CountdownTimer放入Handler.您可以创建2个处理程序.这是一个例子.

private voID startHandlerAnDWait10Seconds(){    Handler handler1 = new Handler();    handler1.postDelayed(new Runnable() {        public voID run() {            // Start Countdown timer after wait for 10 seconds            startCountDown();        }    }, 10000);}private voID startCountDown {    final Handler handler2 = new Handler();    handler2.post(new Runnable() {        int seconds = 60;        public voID run() {            seconds--;            mhello.setText("" + seconds);            if (seconds < 0) {                // DO SOMETHING WHEN TIMES UP                stopTimer = true;            }            if(stopTimer == false) {                handler2.postDelayed(this, 1000);            }        }    });}
总结

以上是内存溢出为你收集整理的Java-倒数计时器延迟-Android全部内容,希望文章能够帮你解决Java-倒数计时器延迟-Android所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1120974.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存