我有一个按钮,当点击这个按钮时,我想做一些动作并将它们还原,让我们说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)
所以直到循环正在模拟延迟并在我做我想要的之后.有什么建议?
使用Handler,如下所示:
new Handler().postDelayed(new Runnable() {
void run() {
// do something later
}
}, 5000);
Run Code Online (Sandbox Code Playgroud)
编辑:请注意,此解决方案允许主线程在延迟期间继续 - 刷新GUI,正确处理活动更改(例如"主页"按钮)等.使用Thread.sleep()不会.
| 归档时间: |
|
| 查看次数: |
1177 次 |
| 最近记录: |