title: Android progressBar setVisibility() not working
body: <p>Can someone please help me understand why <code>progressBar.setVisibility()</code> works when using a <code>CountDownTimer</code> but not when doing <code>async</code> download? In fact, the first <code>Toast</code> on <code>async</code> download does not even show even though the second one <code>onPostExecute()</code> does. Below is a working, or rather NOT working, demo. Thanks a lot.</p>
  
  <p>My <strong>MainActivity</strong>:</p>
  
  <pre><code>public class MainActivity extends AppCompatActivity {
  
      ProgressBar progressBar;
  
      int[] items = { 12982418, 12998698, 12993549, 12995125, 12987537, 12993021, 12991986, 13008408, 12983417, 12986060, 12998395, 12985644, 13014731, 12986433, 12985074, 12994455, 12994262, 12986759, 13011932, 13005211, 12993521, 12987900, 12992623, 12981736, 12986649, 12991524, 13000035, 12989278, 13013868, 13009417, 13013327, 12981605, 12985768, 13000158, 13015035, 13002596, 13015944, 12997893, 12999767, 13010949, 12996835, 13013517, 13006555, 13013143, 13010016, 13005792, 13016948, 13007235, 12998343, 12987102 };
      int counter;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
  
          progressBar = (ProgressBar) findViewById(R.id.progressBar);
          progressBar.setIndeterminate(true);
          progressBar.setKeepScreenOn(true);
          progressBar.setVisibility(View.INVISIBLE);
      }
  
      public void actionTimer(View view) {
          Toast.makeText(this, "starting progressBar - CountDownTimer", Toast.LENGTH_SHORT).show();
          progressBar.setVisibility(View.VISIBLE);
          new CountDownTimer(5000, 500) {
              @Override
              public void onTick(long millisUntilFinished) {
              }
              @Override
              public void onFinish() {
                  progressBar.setVisibility(View.INVISIBLE);
                  Toast.makeText(getApplicationContext(), "timer done", Toast.LENGTH_SHORT).show();
              }
          }.start();
      }
  
      public void actionJson(View view) {
          Toast.makeText(this, "starting progressBar - json fetch", Toast.LENGTH_SHORT).show();
          progressBar.setVisibility(View.VISIBLE);
  
          String urlTemplate = "https://hacker-news.firebaseio.com/v0/item/___ITEM_NUMBER___.json?print=pretty";
          counter = 0;
  
          for (int i = 0; i &lt; items.length; i++) {
              String url = urlTemplate.replaceAll("___ITEM_NUMBER___", String.valueOf(items[i]));
              //Log.i("thisDoesNotWork", url);
  
              DownloadJson downloadJson = new DownloadJson();
              try {
                  downloadJson.execute(url).get();
              } catch (InterruptedException e) {
                  e.printStackTrace();
              } catch (ExecutionException e) {
                  e.printStackTrace();
              }
          }
      }
  
      public class DownloadJson extends AsyncTask&lt;String, Void, String&gt; {
  
          @Override
          protected String doInBackground(String... params) {
              Log.i("DownloadJson", "url=" + params[0]);
  
              URL url;
              HttpURLConnection urlConnection = null;
  
              try {
                  url = new URL(params[0]);
                  urlConnection = (HttpURLConnection) url.openConnection();
                  InputStream inputStream = urlConnection.getInputStream();
  
                  BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
                  StringBuilder resultBuilder = new StringBuilder();
                  String line;
                  while ((line = reader.readLine()) != null) {
                      resultBuilder.append(line).append("\n");
                  }
                  //Log.i("DownloadJson", "resultBuilder.length()=" + resultBuilder.length());
                  return resultBuilder.toString();
  
              } catch (Exception e) {
                  e.printStackTrace();
                  return "{\"status\" : \"Hacker News json download failed\"}";
              }
          }
  
          @Override
          public void onPostExecute(String s) {
              super.onPostExecute(s);
              counter += 1;
              if (counter == items.length) {
                  progressBar.setVisibility(View.INVISIBLE);
                  Toast.makeText(getApplicationContext(), "download done", Toast.LENGTH_SHORT).show();
              }
          }
      }
  }
  </code></pre>
  
  <p>My <strong>XML</strong>:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:id="@+id/activity_main"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:paddingBottom="@dimen/activity_vertical_margin"
      android:paddingLeft="@dimen/activity_horizontal_margin"
      android:paddingRight="@dimen/activity_horizontal_margin"
      android:paddingTop="@dimen/activity_vertical_margin"
      tools:context="com.plaudev.progressbar.MainActivity"&gt;
  
      &lt;LinearLayout
          android:orientation="horizontal"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:gravity="center_vertical"&gt;
  
          &lt;Button
              android:text="@string/timer"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignParentTop="true"
              android:layout_centerHorizontal="true"
              android:id="@+id/buttonTimer"
              android:layout_weight="1"
              android:onClick="actionTimer"
              android:layout_margin="25dp" /&gt;
  
          &lt;Button
              android:text="@string/json"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:id="@+id/buttonJson"
              android:layout_weight="1"
              android:onClick="actionJson"
              android:layout_margin="25dp" /&gt;
      &lt;/LinearLayout&gt;
  
      &lt;ProgressBar
          style="?android:attr/progressBarStyleLarge"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_centerVertical="true"
          android:layout_centerHorizontal="true"
          android:id="@+id/progressBar" /&gt;
  &lt;/RelativeLayout&gt;
  </code></pre>