title: Android HandlerThread update UI without UiHandler
body: <p>this code works fine  and update my "TextView" and also show "Toast" 
  and that is my Headache as I have tried to to pass A Runnable obj Without including my UiHandler on it as it suppose to be the bridge to update my UI Thread but my activity got updated with no single Error ?????
  This not suppose to be as CustomHandlerThread should be A different thread </p>
  
  <p>why this happen ?</p>
  
  <blockquote>
    <p>My Activity</p>
  </blockquote>
  
  <p>public class TestActivity extends BaseActivity {</p>
  
  <pre><code>Runnable task;
  @BindView(R.id.send_test_message)
  Button send_test_message;
  private Handler mUiHandler = new Handler();
  private MyWorkerThread mWorkerThread;
  
  @Override
  public void initViews() {
  
  }
  
  @Override
  public void attachViewsListeners() {
  
  }
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.test_activity);
      ButterKnife.bind(this);
  
      task = new Runnable() { ///this is normally work I have no problem with 
                              ///that 
          @Override
          public void run() {
  
                  mUiHandler.post(new Runnable() {
                      @Override
                      public void run() {
                          send_test_message.setText("Change---&gt;1");
                      }
                  });
  
              }
  
  
      };
  
  
  }
  
  
  @Override
  protected void onStart() {
      super.onStart();
      mWorkerThread = new MyWorkerThread("myWorkerThread");
      mWorkerThread.start();
      mWorkerThread.prepareHandler();
      mWorkerThread.postTask(task);
  
      mWorkerThread.postTask(new Runnable() {  /// why this task work with no 
                                              ///error  ?
          @Override
          public void run() {
              send_test_message.setText("Change---&gt;2");
          }
      });
  }
  
  @Override
  protected void onDestroy() {
      mWorkerThread.quit();
      super.onDestroy();
  }
  </code></pre>
  
  <blockquote>
    <p>my HandlerThread </p>
  </blockquote>
  
  <pre><code>//MyWorkerThread.java
  public class MyWorkerThread extends HandlerThread {
  
      Handler mWorkerHandler;
  
      public MyWorkerThread(String name) {
          super(name);
      }
  
      public void postTask(Runnable task) {
          mWorkerHandler.post(task);
      }
  
      public void prepareHandler() {
  
      mWorkerHandler = new Handler(getLooper());
  
  Log.e("MyWorkerThread---&gt;",Looper.myLooper().getThread().getName()); //--&gt;main
  Log.e("MyWorkerThread---&gt;",getLooper().getThread().getName());//--&gt;//myWorkerThread
  Log.e("MyWorkerThread---&gt;",Thread.currentThread().getName()); //--&gt;main
  
      }
  }
  </code></pre>
  
  <p>I followed this <a href="https://blog.nikitaog.me/2014/10/11/android-looper-handler-handlerthread-i/" rel="nofollow noreferrer">link</a> as A Referance</p>
  
  <p>is My thread running on the MainThread or getLooper() intialize my 
   HandlerThread with MainThread Looper ,is those log message are true </p>
  
  <h2>  please illuminate me</h2>