簡體   English   中英

如何在Android中將處理程序用作計時器?

[英]How to use handler as a timer in android?

    Handler handler = new Handler();    
    if (v.getId() == R.id.play){    
       handler.postDelayed(new Runnable() {                    
       public void run() {
           play.setBackgroundResource(R.drawable.ilk);
       }
   }, 2000);    
       play.setText("Play");    
}

我想先設置背景,然后2秒后,代碼將繼續play.setText("Play");下一行play.setText("Play"); 像那樣 取而代之的是,出現第一個文本。 2秒后,背景發生變化。

Handler.postDelayed立即返回。 然后執行下一行。 在指定的毫秒后,將執行Runnable

因此,您的代碼應如下所示:

void doFirstWork() {
    Handler handler = new Handler();

    if (v.getId() == R.id.play){

       handler.postDelayed(new Runnable() {
           public void run() {
               play.setText("Play");
               doNextWork();
           }
       }, 2000);

       play.setBackgroundResource(R.drawable.ilk);
    }
}

void doNextWork() {
    ...
}

首先設置背景。 之后,在Handler中設置文本。 由於您已將延遲放置在postDelayed的末尾,因此它將在所述延遲之后或在您的情況下2秒后立即觸發。

if (v.getId() == R.id.play){
   play.setBackgroundResource(R.drawable.ilk);
   new Handler().postDelayed(new Runnable() {
       public void run() {
           play.setText("Play");
       }
   }, 2000);

}

暫無
暫無

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

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