2017-10-14 35 views
0

有一個惱人的問題球員,看看下面的代碼:當你運行該代碼邏輯文本視圖必須顯示「您好」,5秒鐘後的文本視圖2系統延遲效果命令

textView.setText("hi"); 
    SystemClock.sleep(5000); 
    textView2.setText("hi"); 

顯示「嗨」。 但是,這並沒有發生,5秒後他們都在一起顯示這個詞!

+4

的可能的複製【如何調用Android的延遲後的方法(https://stackoverflow.com/questions/3072173/how-to-call-在Android中延遲後的方法) – KeLiuyue

回答

0

您正在阻止主應用程序線程並阻止更新UI。這在任何有關Android應用程序開發的書籍中都有涉及。

這種替換代碼:

textView.setText("hi"); 
textView2.postDelayed(new Runnable() { 
    public void run() { 
    textView2.setText("hi"); 
    } 
}, 5000); 
+0

這可以解決我的問題,但我想在循環中使用延遲,並且這種延遲不能使用完整。 – Mehrdad

+0

@Mehrdad:沒有關於'postDelayed()'的信息,它阻止它被用於活動或片段中的定​​期UI更新。 [此示例應用程序](https://github.com/commonsguy/cw-omnibus/tree/v8.7/Threads/PostDelayed)每5秒鐘使用'postDelayed()'顯示一個「Toast」。 – CommonsWare

+0

是的,它用於吐司,但如果你可以用循環顯示一個例子:) – Mehrdad