EditText 中的 CountDownTimer 在最后一秒滞后



我想设置一个带有计时器的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();

最新更新