2014-04-22 2 views
1

매초 알림 텍스트를 업데이트하고 싶습니다. 이 코드를 작성했습니다매초마다 알림 텍스트 업데이트

new Handler().postDelayed(new Runnable() { 
    @Override 
    public void run() { 
     // TODO Auto-generated method stub 
     builder.setSmallIcon(R.drawable.ic_launcher); 
     builder.setContentTitle("Text"); 
      builder.setContentText("value updated every 1 second"); 
     } 

    }   
}, 1*1000); 

그러나 값은 1 초마다 한 번만 업데이트됩니다. 왜? 내가 어떻게 할 수 있니?

+0

확인이 다른 유래 [답변] (핸들러를 넣어 http://stackoverflow.com/questions/9850594/why-handler-timer-only-run-once). – calimbak

답변

0

그의 코드는 매 라운드마다 1000 밀리 초의 시간 동안 대기하는 스레드를 시작합니다. 한 번 호출 할 것이다 타이머 핸들러를 사용하는

Thread t = new Thread() { 

    @Override 
    public void run() { 
    try { 
     while (!isInterrupted()) { 
     Thread.sleep(1000); 
     runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
      // update TextView here! 
      } 
     }); 
     } 
    } catch (InterruptedException e) { 
    } 
    } 
}; 

t.start(); 
0

보십시오.

Timer timer = new Timer(); 
     TimerTask task = new TimerTask() { 

      @Override 
      public void run() { 
       updateUI(); 
      } 
     }; 
     timer.scheduleAtFixedRate(task, 0,1000); 

별도의 방법

public void updateUI(){ 
     new Handler().postDelayed(new Runnable() { 

      @Override 
      public void run() { 
       // TODO Auto-generated method stub 
       builder.setSmallIcon(R.drawable.ic_launcher); 
       builder.setContentTitle("Text"); 
        builder.setContentText("value updated every 1 second"); 

      } 
     }, 1000); 
    }