2012-03-21 3 views

답변

3

당신은 자신의 스레드에 넣고 그것을 영원히 반복하고 싶을 것입니다.

Thread thread = new Thread() 
{ 
    @Override 
    public void run() { 
     try { 
      while(true) { 
       Thread.sleep(5000); // for the 5 seconds requirement 
       results = sendGetMessage(); 
      } 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
    } 
}; 

thread.start(); 
+0

미안하지만, 매 5 초마다 repeatadly를 실행하고 싶습니다. –

+0

이것은 또한 나쁜 해결책입니다. 시스템은 결국 스레드를 죽일 수 있습니다 ... –

+0

@AsafNevo, 나는 그것을 허용 할 줄을 추가했습니다. 5 초마다 실행됩니다. – ajacian81

0

많은 대안이 있지만 ScheduledExecutorService을 선호합니다. 아래 샘플 코드를 참조하십시오.

ScheduledExecutorService scheduleTaskExecutor = Executors.newScheduledThreadPool(1); 

// This schedule a task to run every 5 seconds: 
scheduleTaskExecutor.scheduleAtFixedRate(new Runnable() { 
    public void run() { 
    // Do the actual job: 
    results = sendGetMessage(); 

    // In case if you need update UI, simply do this: 
    runOnUiThread(new Runnable() { 
     public void run() { 
     // update your UI component here. 
     myTextView.setText("refreshed"); 
     } 
    }); // end of runOnUiThread 
    } 
}, 0, 5, TimeUnit.SECONDS); 

서비스를 중지하기 전에 실행 가능한 작업을 올바르게 완료하거나 닫으십시오.