2015-11-02 65 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");