簡體   English   中英

Thread.sleep停止整個函數android

[英]Thread.sleep stopping entire function android

我有一個java函數,我想在中間延遲。

frombox.setText(simpchi[rannum] + "\n[" + pinyin[rannum] + "]");
String meaning = meanings[rannum];
try {
        Thread.sleep(500);
    } catch (InterruptedException e) {
        Thread.currentThread().interrupt();
        e.printStackTrace();
    }
tobox.setText(meaning.replace("/", "\n"));

我希望更改收件箱的文本,然后在0.5秒后更改收件箱的文本。

但是,執行此操作時,整個函數會延遲,然后發件箱和收件箱的文本會同時更改。

我究竟做錯了什么? 對不起,如果這很簡單; 我是java的新手。

您不應該在UI線程中調用Thread.sleep() 決不! 你應該做什么:

Handler handler = new Handler();
handler.postDelayed(new Runnable(){ 
    public void run(){
        tobox.setText(meaning.replace("/", "\n"));
    }
}, 500); // 500 ms

或簡單地(致zapl)

tobox.postDelayed(new Runnable(){ 
    public void run(){
        tobox.setText(meaning.replace("/", "\n"));
    }
}, 500); // 500 ms

這樣第二個settext將被延遲並在UI線程中運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM