Can someone help me put this download code that I use in ASyncTask?
<p>It works just fine when I run it in a thread, but I want to use Asynctask and when I execute my version of it, nothing happens:</p>

<pre><code>try {
  //set the download URL, a url that points to a file on the internet
  //this is the file to be downloaded
  URL url = new URL(filename2);

  //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
  //int totalSize = urlConnection.getContentLength();
  //variable to store total downloaded bytes
  int 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
    //updateProgress(downloadedSize, totalSize);
    //publishProgress((int)(total*100/lenghtOfFile));
  }

  //close the output stream when done
  fileOutput.close();
//catch some possible errors...
} catch (MalformedURLException e) {             
  e.printStackTrace();
} catch (IOException e) {               
  e.printStackTrace();
}
</code></pre>

<p>THIS IS MY ATTEMPT AS REQUESTED:</p>

<pre><code>      private class DownloadFile extends AsyncTask&lt;Void, Integer, Long&gt; {
       protected void onProgressUpdate(Integer... progress) {

    }

    protected void onPostExecute(Long result) {
        Intent in = new Intent(mainmenu.this, DownloadService.class);           
        stopService(in);

    }

    @Override
    protected Long 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 = new URL(filename2);


            //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
            //int totalSize = urlConnection.getContentLength();
            //variable to store total downloaded bytes
            int 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
                    //updateProgress(downloadedSize, totalSize);
                    //publishProgress((int)(total*100/lenghtOfFile));


            }
            //close the output stream when done
            fileOutput.close();





    //catch some possible errors...
    } catch (MalformedURLException e) {             
            e.printStackTrace();
    } catch (IOException e) {               
            e.printStackTrace();
    }
        return null;
    }


}
</code></pre>
