if(b){
mgr.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),0);
tv.setText("Right!");
check.setClickable(false);
check.setVisibility(View.INVISIBLE);
safe.setBackgroundResource(R.drawable.safe_opened);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finish();
}
如果我是对的,这个Activity
会从上到下执行代码(隐藏键盘,禁用按钮等)。后代码先在java/android中执行
然而,当我在我的手机上运行这个程序,它会等待1000毫秒,然后设置文本"Right!"
,改变背景等。
我觉得代码是从底部到顶部执行。我寻找答案,但没有出现。为什么会发生这种事情?
您对执行顺序是正确的,但是您缺少一个关键元素 - 结果将在方法结束后显示(直到此时才显示任何内容)。但是,您的'Thread.sleep'是在UI线程上完成的,因此不会执行该方法并允许操作系统进行渲染。 –