title: AsyncTask not passing progress (what does super.onprogressupdate do?)
body: <p>I am using AsyncTask to download different mp3's from webview. When I track my download progress and pass to onprogress update, it receives a 0 no matter what I do. I have tried using Doubles, Floats, and Integers.. here is an example of my code:</p>
  
  <pre><code>public class DownloadFile extends AsyncTask&lt;Void, Float, String&gt; {                       
  
  ProgressBar progressBar;
  NotificationManager notificationManager;
  Notification notification2;            
  
  @Override
  protected void onPreExecute() {                
      // configure the intent
      Intent intent = new Intent();
      final PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, 0);
  
      // configure the notification
      notification2 = new Notification(R.drawable.download, "DOWNLOADING: " + filename3, System
              .currentTimeMillis());
      notification2.flags = notification2.flags | Notification.FLAG_ONGOING_EVENT;
      notification2.contentView = new RemoteViews(getApplicationContext().getPackageName(), R.layout.download_progress);
      notification2.contentIntent = pendingIntent;
      notification2.contentView.setTextViewText(R.id.percentage,"hi" );
      notification2.contentView.setTextViewText(R.id.status_text, "DOWNLOADING: " + filename3);
      notification2.contentView.setProgressBar(R.id.status_progress, 100, 0, false);
  
      getApplicationContext();
      notificationManager = (NotificationManager) getApplicationContext().getSystemService(
              Context.NOTIFICATION_SERVICE);
  
      notificationManager.notify(2, notification2);
  }
  
  @Override
  protected String doInBackground(Void... params) {        
      try {
  
          //set the download URL, a url that points to a file on the internet
          //this is the file to be downloaded
          URL url = songURL2;
  
  
          //create the new connection
          HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
  
          //set up some things on the connection
          urlConnection.setRequestMethod("GET");
          urlConnection.setDoOutput(true);
  
          //and connect!
          urlConnection.connect();
  
          //set the path where we want to save the file
          //in this case, going to save it on the root directory of the
          //sd card.
          SDCardRoot = Environment.getExternalStorageDirectory() + "/download/";
          //create a new file, specifying the path, and the filename
          //which we want to save the file as.
          File file = new File(SDCardRoot,filename3);
  
          //this will be used to write the downloaded data into the file we created
          FileOutputStream fileOutput = new FileOutputStream(file);
  
          //this will be used in reading the data from the internet
          InputStream inputStream = urlConnection.getInputStream();
  
          //this is the total size of the file
          Integer totalSize = urlConnection.getContentLength();
          //variable to store total downloaded bytes
          float downloadedSize = 0;
  
          //create a buffer...
          byte[] buffer = new byte[1024];
          int bufferLength = 0; //used to store a temporary size of the buffer
  
          //now, read through the input buffer and write the contents to the file
          while ( (bufferLength = inputStream.read(buffer)) &gt; 0 ) {
                  //add the data in the buffer to the file in the file output stream (the     file on the sd card
                  fileOutput.write(buffer, 0, bufferLength);
                  //add up the size so we know how much is downloaded
                  downloadedSize += bufferLength;
                  //this is where you would do something to report the prgress, like this maybe
  
  
                  publishProgress((downloadedSize * 100)/totalSize) * 100);
  
  
          }
          //close the output stream when done
          fileOutput.close();
  
         return "Success";
  
  
  
  //catch some possible errors...
  } catch (MalformedURLException e) {             
          e.printStackTrace();
      return "Failed";
  } catch (IOException e) {               
          e.printStackTrace();
             return "Failed";
  }
  }               
  
  protected void onProgressUpdate(Float... progress) {
  
      notification2.contentView.setProgressBar(R.id.status_progress, 100, (int)progress[0], false);
      String stringy = progress + "%";
      TextView textytext = (TextView) findViewById(R.id.percentage);
      textytext.setText(stringy);
      notificationManager.notify(2, notification2);           
  }
  
  @Override
  protected void onPostExecute(String result) {
  
      notificationManager.cancel(2);          
  }
  }       
  </code></pre>
  
  <p>I was struggling with this all day yesterday and throughout the night. Does  super.onprogressupdate() have anything to do with this case, and anyone know a solution? I am pulling my hair out.</p>
  
  <p>EDIT: Oh and I am trying to use it so I can publish this progress to the progress bar I have in my custom notification, but you can probably tell that by the code.</p>
  
  <p>EDIT #2: So I have been doing some testing and I changed my progress to the right arithmetic which is</p>
  
  <p>myProgress = (downloadedSize/totalSize) * 100;</p>
  
  <p>then I said if myProgress > 50 then publishProgress(50); </p>
  
  <p>by doing this the progress bar jumps to 50 when the download is half way done.
  then I slip my variable and it doesn't pass the variables data to onProgressUpdated.</p>
  
  <p>Does anyone know why a hard-coded number is working but not a number in a variable??</p>