title: android timer handler
body: <p>I am using this code:</p>
  
  <pre><code>public class newtimer extends Activity {
  
      private Timer myTimer;
  
      @Override
      public void onCreate(Bundle icicle) {
          super.onCreate(icicle);
          setContentView(R.layout.main);
  
          myTimer = new Timer();
          myTimer.schedule(new TimerTask() {
              @Override
              public void run() {
                  TimerMethod();
              }
  
          }, 0, 1000);
      }
  
      int number = 0;
  
      private void TimerMethod()
      {
          //This method is called directly by the timer
          //and runs in the same thread as the timer.
  
          //We call the method that will work with the UI
          //through the runOnUiThread method.
  
          Toast.makeText(this, "TimerMethod Running "+number, Toast.LENGTH_SHORT).show();
  
          this.runOnUiThread(Timer_Tick);
      }
  
      private Runnable Timer_Tick = new Runnable() {
          public void run() {
  
              //This method runs in the same thread as the UI.
              //Do something to the UI thread here
  
              Toast.makeText(getBaseContext(), "UI Thread Running "+number, Toast.LENGTH_SHORT).show();
  
          }
      };
  }
  </code></pre>
  
  <p>When i run it i get this exception in logcat:</p>
  
  <blockquote>
    <p>09-06 21:39:39.701: ERROR/AndroidRuntime(1433): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()</p>
  </blockquote>