title: Android AsyncTask onPostExecute won't display AlertDialog
body: <p>I'm having an issue with my onPostExecute from an AsyncTask class. Here is the code. </p>
  
  <p><strong>--EDIT: added in the rest of the code by request--</strong></p>
  
  <pre><code>public class MainActivity extends Activity {
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
  
      preliminaryTasks();
  }
  
  private void preliminaryTasks() {
  
      //removed more code
  
      new discoverAddresses().execute();
  
  }
  
  public class discoverAddresses extends AsyncTask&lt;String, Void, List&lt;String&gt;&gt; {
  
      @Override
      protected List&lt;String&gt; doInBackground(String... params){
  
          /* Lots of code here taken out */
  
          List&lt;String&gt; addresses = new ArrayList&lt;String&gt;();
          //Added for debugging purposes
          addresses.add("http://192.168.1.120:80");
          addresses.add("http://192.168.1.110:80");
          return addresses;
  
      }
  
      @Override
      protected void onPostExecute(List&lt;String&gt; addresses){
  
          MainActivity.this.runOnUiThread(new Runnable(){
              public void run(){
                  AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                  builder.setMessage("Are you sure you want to exit?").setCancelable(false)
                          .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                              public void onClick(DialogInterface dialog, int id) {
                                  MainActivity.this.finish();
                              }
                          }).setNegativeButton("No", new DialogInterface.OnClickListener() {
                              public void onClick(DialogInterface dialog, int id) {
                                  dialog.cancel();
                              }
                          });
                  AlertDialog alert = builder.create();
                  alert.show();
              }
          });
  
          AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
          builder.setMessage("Are you sure you want to exit?").setCancelable(false)
                  .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                      public void onClick(DialogInterface dialog, int id) {
                          MainActivity.this.finish();
                      }
                  }).setNegativeButton("No", new DialogInterface.OnClickListener() {
                      public void onClick(DialogInterface dialog, int id) {
                          dialog.cancel();
                      }
                  });
          AlertDialog alert = builder.create();
          alert.show();
  
          return; 
  
      }
  }
  }
  </code></pre>
  
  <p>But the alert dialog never shows up; when I watch in the debugger it will execute the alert.show() line but it never displays on the UI. Does anyone have any ideas on why this is? Thanks!</p>
  
  <p><strong>EDIT: both AlertDialogs get executed in the debugger but never display on the UI</strong></p>
  
  <p><strong>EDIT2: I copied just the code I posted here (to see if it was the removed code I took out for simplification that was causing the issue) into a new project and the alertdialog actually appears, meaning the code I took out is an issue. This is coming up in LogCat in my original project upon Force Close termination of the app.</strong></p>
  
  <pre><code>02-02 11:13:28.746: D/AndroidRuntime(11658): Shutting down VM
  02-02 11:13:28.746: W/dalvikvm(11658): threadid=1: thread exiting with uncaught exception (group=0x40fce300)
  02-02 11:13:28.762: E/AndroidRuntime(11658): FATAL EXCEPTION: main
  02-02 11:13:28.762: E/AndroidRuntime(11658): java.lang.NullPointerException
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.widget.AbsListView.obtainView(AbsListView.java:2257)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.widget.ListView.measureHeightOfChildren(ListView.java:1244)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.widget.ListView.onMeasure(ListView.java:1156)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.View.measure(View.java:15172)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.widget.LinearLayout.measureVertical(LinearLayout.java:681)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.View.measure(View.java:15172)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.widget.LinearLayout.measureVertical(LinearLayout.java:681)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.View.measure(View.java:15172)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.View.measure(View.java:15172)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.View.measure(View.java:15172)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2148)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.View.measure(View.java:15172)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1850)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1077)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1275)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4214)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.Choreographer.doCallbacks(Choreographer.java:555)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.Choreographer.doFrame(Choreographer.java:525)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.os.Handler.handleCallback(Handler.java:615)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.os.Handler.dispatchMessage(Handler.java:92)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.os.Looper.loop(Looper.java:137)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at android.app.ActivityThread.main(ActivityThread.java:4899)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at java.lang.reflect.Method.invokeNative(Native Method)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at java.lang.reflect.Method.invoke(Method.java:511)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
  02-02 11:13:28.762: E/AndroidRuntime(11658):    at dalvik.system.NativeStart.main(Native Method)
  </code></pre>