2015-11-02 52 views
0

我有AsyncTask类,下载下载图像文件时使用Downloader名称,当我想在另一个类中创建它的实例时,出现错误:“方法execute(String)未定义类型Downloader“的描述。 我应该如何制作Downloader的实例?在Android中制作AsyncTask的实例

public class Downloader extends AsyncTask<String, String, String> { 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
    } 


    /** 
    * Downloading file in background thread 
    * */ 
    @Override 
    protected String doInBackground(String... f_url) { 
     int count; 
     try { 
      URL url = new URL(f_url[0]); 
      URLConnection conection = url.openConnection(); 
      conection.connect(); 

      // this will be useful so that you can show a tipical 0-100% 
      // progress bar 
      int lenghtOfFile = conection.getContentLength(); 

      // download the file 
      InputStream input = new BufferedInputStream(url.openStream(), 
        8192); 

      // Output stream 
      OutputStream output = new FileOutputStream(G.FILE_OUT_PATH); 

      byte data[] = new byte[1024]; 

      long total = 0; 

      while ((count = input.read(data)) != -1) { 
       total += count; 
       // publishing the progress.... 
       // After this onProgressUpdate will be called 
       publishProgress("" + (int) ((total * 100)/lenghtOfFile)); 

       // writing data to file 
       output.write(data, 0, count); 
      } 

      // flushing output 
      output.flush(); 

      // closing streams 
      output.close(); 
      input.close(); 
     } 
     catch (Exception e) { 
      Log.e("Error: ", e.getMessage()); 
     } 

     return null; 
    } 


    /** 
    * Updating progress bar 
    * */ 
    @Override 
    protected void onProgressUpdate(String... progress) { 
     // setting progress percentage 
    } 


    /** 
    * After completing background task Dismiss the progress dialog 
    * **/ 
    @Override 
    protected void onPostExecute(String file_url) { 
     // dismiss the dialog after the file was downloaded 

    } 

} 





public class Downloader extends AsyncTask<String, String, String> { 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
    } 


    /** 
    * Downloading file in background thread 
    * */ 
    @Override 
    protected String doInBackground(String... f_url) { 
     int count; 
     try { 
      URL url = new URL(f_url[0]); 
      URLConnection conection = url.openConnection(); 
      conection.connect(); 

      // this will be useful so that you can show a tipical 0-100% 
      // progress bar 
      int lenghtOfFile = conection.getContentLength(); 

      // download the file 
      InputStream input = new BufferedInputStream(url.openStream(), 
        8192); 

      // Output stream 
      OutputStream output = new FileOutputStream(G.FILE_OUT_PATH); 

      byte data[] = new byte[1024]; 

      long total = 0; 

      while ((count = input.read(data)) != -1) { 
       total += count; 
       // publishing the progress.... 
       // After this onProgressUpdate will be called 
       publishProgress("" + (int) ((total * 100)/lenghtOfFile)); 

       // writing data to file 
       output.write(data, 0, count); 
      } 

      // flushing output 
      output.flush(); 

      // closing streams 
      output.close(); 
      input.close(); 
     } 
     catch (Exception e) { 
      Log.e("Error: ", e.getMessage()); 
     } 

     return null; 
    } 


    /** 
    * Updating progress bar 
    * */ 
    @Override 
    protected void onProgressUpdate(String... progress) { 
     // setting progress percentage 
    } 


    /** 
    * After completing background task Dismiss the progress dialog 
    * **/ 
    @Override 
    protected void onPostExecute(String file_url) { 
     // dismiss the dialog after the file was downloaded 

    } 

} 
+0

下载downloaderTask =新下载(); downloaderTask.execute(“your_string); –

回答

1
new Downloader().execute("your URL string here");