title: Implement a Thread by providing a new class that extends Thread and overriding its run() method
body: <p>Implementing a Thread by providing a new class that extends Thread and overriding its run() method is new to me. I've tried all day to get it to work. Here's my code:</p>
  
  <pre><code>/*
   * see http://developer.android.com/reference/java/lang/Thread.html
   */
  class threadClass extends Thread {
      private Handler mHandler;
      private Message mMsg;
      // constructor
      public threadClass(Handler handler, Message msg) {
          // do something like save the Handler reference
          mHandler = handler;
          mMsg = msg;
      }
      @Override
      public void run() {
          // do some background processing, call the Handler?
          mHandler.sendMessage(mMsg);
      }
  }
  public Thread passHandlerToThread(Handler handler) {
      handler.sendEmptyMessage(10);
      Message msg = Message.obtain();
      msg.what = 10;
      Thread thread = new threadClass(handler, msg);
      return thread;
  }
  private Handler localHandler = new Handler() {
      @Override
      public void handleMessage(Message msg) {
          int what = msg.what;
          if (what == 10) Log.i("localHandler", "what: " + what);
      }
  };
  public void startThread() {
      Thread thread = passHandlerToThread(localHandler);
      thread.start();
  }
  </code></pre>
  
  <p>I call startThread() in my LocalService onCreate() but nothing happens. What am I doing wrong? I was expecting localHandler() to be called twice: once in passHandlerToThread() and again in run().</p>