【问题标题】:Count down issue in AndroidAndroid中的倒计时问题
【发布时间】:2014-01-13 13:08:08
【问题描述】:

我在开始录制之前创建了一个CountDownTimer。代码部分:

if(bitRateBoolean && timeBoolean && name) {
             toast = Toast.makeText(getActivity(), "Registration will start in 5 seconds", Toast.LENGTH_SHORT);
                         toast.show();

             new CountDownTimer(5000, 1000) {

                  public void onTick(long millisUntilFinished) {
                      Toast.makeText(getActivity(), "seconds remaining: " + millisUntilFinished / 1000, 
                            Toast.LENGTH_LONG).show();

                  }

                  public void onFinish() {
                          toast.cancel();
                      rec();
                  }
               }.start();             

     }

我希望rec() 在 5 秒后启动,并且 toast 显示倒计时。但这不起作用。它显示倒计时,但似乎每两秒倒计时一次。在吐司消失之前,我必须等两次。代码有问题?

【问题讨论】:

  • 我不认为有什么问题,toast 可能需要 2 秒才能消失。使用文本视图显示当前剩余时间并再次检查。
  • IIRC LENGTH_LONG 是 5 或 7 秒
  • LENGTH_LONG toast 需要 3.5 秒才能消失,它们会被绘制在另一个之上。这是你的问题吗?
  • 不完全是..当它在录制前显示“剩余 2 秒”时,录制开始。这不是..同步..我不知道如何解释:(

标签: java android countdowntimer android-toast


【解决方案1】:

Countdown Timer 从我在这里读到的问题是烤面包时间,因为它需要超过两秒。仅在第一个完成后才调用下一个 onClick。如果您的吐司时间超过 1 秒('Toast.LENGTH_LONG' 它肯定会这样做),那么下一次调用 onTick 将不会在 1 秒之后。

私有静态最终 int LONG_DELAY = 3500; // 3.5 秒
私有静态最终 int SHORT_DELAY = 2000; // 2 秒

这些是 LENGTH_LONG 和 LENGTH_SHORT 的 Toast 默认值。
我的建议是使用 Status Bar Notifications 而不是 Toast

【讨论】:

  • mmh,是的,我认为这是问题所在..我尝试使用 textview 并且它可以工作..现在的问题是 textview 没有消失并且仍然存在:`“剩余秒数 1”` .我需要“重置”文本视图 onFinish()
  • 在这种情况下,您可以尝试类似 textView.setVisibility(View.GONE)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多