title: Android runOnUiThread not async
body: <p>I've got this piece of code:</p>
  
  <pre><code>public void updateOptionLists() {
      Log.d("UI", "Called update");
      if (updating){
          return;
      }
      updating = true;
      runOnUiThread(
              new Runnable() {
                  @Override
                  public void run() {
                      updating = false;
                      updateOptionList();
                      scrollToLastTapped();
                      Log.d("UI","Updating");
                  }
              });
      Log.d("UI", "Posted update");
  }
  </code></pre>
  
  <p>What I'd expect from logcat would be something like this:</p>
  
  <ul>
  <li>Called update </li>
  <li>Posted update</li>
  <li>Updating</li>
  </ul>
  
  <p>As far as I know runOnUi should be asynchronous, right? And considering that the functions called alter the views, which takes a while, this should be running asynchronous. Right?</p>
  
  <p>So I look at my logcat:</p>
  
  <ul>
  <li>Called update</li>
  <li>Updating</li>
  <li>Posted update</li>
  </ul>
  
  <p>Why does this happen? And how do I make sure this runs asynchronous?</p>