Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android EditText中的倒计时在最后一秒中延迟_Android - Fatal编程技术网

Android EditText中的倒计时在最后一秒中延迟

Android EditText中的倒计时在最后一秒中延迟,android,Android,我想设置一个带有计时器的EditText,这要感谢CountDownTimer。 我的EditText一秒一秒地写数字3和2,但是对于1有一个延迟(需要1,5到2秒)。 也许我做错了 这是我的代码: CountDownTimer mCountDownTimer = new CountDownTimer(4000, 1000) { @Override public void onTick(long millisUntilFinished) {

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

如果可以,请告诉我;我不能让它工作

设备中的内存导致问题。我找到了一个运行新线程的解决方案

我必须声明
inti=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();

您的代码看起来是正确的,可能是设备内存导致了问题。我也有同样的问题!原因是你的设备我有一个非常好的设备。真奇怪。。。没有别的解决办法了吗?