2011-06-07 49 views
0

我是Android新手。任何人都可以告訴我如何每5秒執行一次消息。我試過這段代碼,但它沒有在我的模擬器上顯示任何內容。我應該做些什麼呢?每5秒自動執行一次消息

 while(true) {  
      Toast.makeText(this, "hi", Toast.LENGTH_SHORT).show(); 
     try { 
      Thread.sleep(5000); 
     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     }   
       } 

回答

8

您不應該從GUI線程調用Thread.sleep()。永遠不要這樣做。爲這樣的事情使用處理程序。

private Handler handler = new Handler();  
private Runnable runnable = new Runnable() { 
    public void run() { 
     doStuff(); 
     /* 
     * Now register it for running next time 
     */ 
     handler.postDelayed(this, 1000); 
    } 
}; 

我這樣喜歡,因爲Timer類引入了一個新的線程使用定時器,它現在是公平的做到這一點。

+0

感謝您的幫助。我知道這個qns聽起來很愚蠢。我可以通過註冊運行知道你的意思嗎? – sugianto 2011-06-09 03:00:27

+1

我的意思是設置postDelayed by .postDelayed(this,1000);它將在應用程序啓動時運行,然後每1秒運行一次。 – artouiros 2011-06-09 09:58:37

0

這是你的代碼的總和?你將活動視圖設置爲什麼? Android實現了一個鬧鐘/日程安排服務,與嘗試實現自己的電池壽命相比,它更加友好。