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線程上完成的,因此不會執行該方法並允許操作系統進行渲染。 –