有一個惱人的問題球員,看看下面的代碼:當你運行該代碼邏輯文本視圖必須顯示「您好」,5秒鐘後的文本視圖2系統延遲效果命令
textView.setText("hi");
SystemClock.sleep(5000);
textView2.setText("hi");
顯示「嗨」。 但是,這並沒有發生,5秒後他們都在一起顯示這個詞!
有一個惱人的問題球員,看看下面的代碼:當你運行該代碼邏輯文本視圖必須顯示「您好」,5秒鐘後的文本視圖2系統延遲效果命令
textView.setText("hi");
SystemClock.sleep(5000);
textView2.setText("hi");
顯示「嗨」。 但是,這並沒有發生,5秒後他們都在一起顯示這個詞!
您正在阻止主應用程序線程並阻止更新UI。這在任何有關Android應用程序開發的書籍中都有涉及。
這種替換代碼:
textView.setText("hi");
textView2.postDelayed(new Runnable() {
public void run() {
textView2.setText("hi");
}
}, 5000);
這可以解決我的問題,但我想在循環中使用延遲,並且這種延遲不能使用完整。 – Mehrdad
@Mehrdad:沒有關於'postDelayed()'的信息,它阻止它被用於活動或片段中的定期UI更新。 [此示例應用程序](https://github.com/commonsguy/cw-omnibus/tree/v8.7/Threads/PostDelayed)每5秒鐘使用'postDelayed()'顯示一個「Toast」。 – CommonsWare
是的,它用於吐司,但如果你可以用循環顯示一個例子:) – Mehrdad
的可能的複製【如何調用Android的延遲後的方法(https://stackoverflow.com/questions/3072173/how-to-call-在Android中延遲後的方法) – KeLiuyue