2016-01-14 43 views
0

在我的應用程序中,需要解壓縮壓縮文件夾。在我的代碼中,它無法添加進度條。因此,我使用Google搜索並在stackoverflow中找到了答案Progress Bar with unzipping of file解壓縮進度條

(複製)

private class Decompress extends AsyncTask<Void, Integer, Integer> { 

    private String _zipFile; 
    private String _location; 
    private int per = 0; 

    public Decompress(String zipFile, String location) { 
      _zipFile = zipFile;  
      _location = location;  
      _dirChecker(""); 
      }  

    protected Integer doInBackground() { 
     try {  
      ZipFile zip = new ZipFile(_zipFile); 
      bar.setMax(zip.size()); 
      FileInputStream fin = new FileInputStream(_zipFile);  
      ZipInputStream zin = new ZipInputStream(fin); 
      ZipEntry ze = null;  
      while ((ze = zin.getNextEntry()) != null) { 

       Log.v("Decompress", "Unzipping " + ze.getName());   
       if(ze.isDirectory()) {   
        _dirChecker(ze.getName());   
        } else {  
       // Here I am doing the update of my progress bar 

         per++; 
         publishProgress(per); 

         FileOutputStream fout = new FileOutputStream(_location +ze.getName());   
         for (int c = zin.read(); c != -1; c = zin.read()) { 

          fout.write(c);   
          }    
         zin.closeEntry();   
         fout.close();   
         }     
       }  
      zin.close();  
      } catch(Exception e) {  
       Log.e("Decompress", "unzip", e);  
       }  
     }  


     } 
     return totalSize; 
    } 

    protected void onProgressUpdate(Integer... progress) { 
     bar.setProgress(per); //Since it's an inner class, Bar should be able to be called directly 
    } 

    protected void onPostExecute(Integer... result) { 
     Log.i("Completed. Total size: "+result); 
    } 
    } 

,當我試圖執行它給出了一個錯誤錯誤:(152,9)錯誤

FileexplorerActivity.Decompress is not abstract and does not override abstract method doInBackground(Void...) in AsyncTask

我怎麼能解決這個問題。

+1

http://stackoverflow.com/questions/27896786/mainactivity-downloadwebpagetask-is-not-abstract-and-does-not-override-abstract –

回答

0

沒有doBackground()不帶參數的AsyncTask

protected abstract Result doInBackground (Params... params) 

你應該包括在doBackground參數()。

0

doInBackground()包括參數:

protected Integer doInBackground(Void... voids) 
{ 
    .... 
    return totalSize; 
}