我在开始录制之前创建了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();
}
我希望5秒后rec()
启动并且toast显示倒计时。但这不起作用。它显示倒计时,但似乎每两秒倒数一次。我必须在吐司消失之前等待两倍的时间。代码中出了什么问题?
答案 0 :(得分:1)
Countdown Timer从我在这里读到的问题是吐司时间,因为它需要超过两秒钟。只有在第一个onClick完成后才会调用下一个onClick。如果你的吐司花费的时间超过1秒('Toast.LENGTH_LONG'确实如此)那么下一次onTick的调用将不会在1秒之后。
private static final int LONG_DELAY = 3500; // 3.5秒
private static final int SHORT_DELAY = 2000; // 2秒
这些是LENGTH_LONG和LENGTH_SHORT的Toast默认值。 我的建议是使用Status Bar Notifications而不是Toast