单击按钮时模拟延迟

Dal*_*ler 1 java android

我有一个按钮,当点击这个按钮时,我想做一些动作并将它们还原,让我们说5秒钟.例如,当单击按钮A时,TextA.Text变为"Clicked"5秒,在5秒内文本的值将恢复为原始值.我在这里有什么,但我觉得这是完全错误的方式.延迟的代码:

diff=time2-time1;

            while (diff<5000) {
                //Log.d("Timer is", String.valueOf(diff));
                time2=System.currentTimeMillis();
                diff=time2-time1;
            }
Run Code Online (Sandbox Code Playgroud)

所以直到循环正在模拟延迟并在我做我想要的之后.有什么建议?

Rob*_*b I 7

使用Handler,如下所示:

new Handler().postDelayed(new Runnable() {
    void run() {
        // do something later
    }
}, 5000);
Run Code Online (Sandbox Code Playgroud)

编辑:请注意,此解决方案允许主线程在延迟期间继续 - 刷新GUI,正确处理活动更改(例如"主页"按钮)等.使用Thread.sleep()不会.