我想设置一个带有计时器的EditText
,这要归功于CountDownTimer
。我的 EditText 逐秒写入数字 3 和 2,但对于 1 有一个滞后(需要 1,5 到 2 秒(。也许我做错了。
这是我的代码:
CountDownTimer mCountDownTimer = new CountDownTimer(4000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
txt_timer.setText(String.valueOf(millisUntilFinished / 1000));
}
@Override
public void onFinish() {
txt_timer.setText("GO");
}
};
mCountDownTimer.start();
这是因为 UI 线程正在执行太多工作。尝试在 UI 线程本身上运行新线程:
runOnUiThread(new Runnable() {
public void run()
{
//Insert your code
}
});
}
如果您无法使其正常工作,请告诉我!
设备中的内存导致问题。我找到了一个运行新线程的解决方案。
我必须在之前声明int i=4;
并使用此代码:
new Thread() {
public void run() {
while (i-- > 1) {
try {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
txt_timer.setText(String.valueOf(i));
}
});
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
txt_timer.setText("GO");
}
}.start();