2015-03-14 5 views
1

создать загрузить файл с веб-Android: нить доступ из класса

Этот код работает, но после того как я перейти на главную страницу, как получить доступ к нитку и этот слушатель?

filedownloader.java

public class FileDownloader { 

    public static void download(final String downloadPath, final String filepath, final OnProgressDownloadListener listener) { 
     Thread thread = new Thread(new Runnable() { 

      @Override 
      public void run() { 
       try { 
        URL url = new URL(downloadPath); 

        HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
        connection.setRequestMethod("GET"); 
        //connection.setDoOutput(true); 
        connection.connect(); 

        int fileSize = connection.getContentLength(); 

        File file = new File(filepath); 
        if (file.exists()) { 
         file.delete(); 
        } 

        FileOutputStream outputStream = new FileOutputStream(filepath); 
        InputStream inputStream = connection.getInputStream(); 
        byte[] buffer = new byte[G.DOWNLOAD_BUFFER_SIZE]; 
        int len = 0; 
        int downloadedSize = 0; 
        while ((len = inputStream.read(buffer)) > 0) { 
         outputStream.write(buffer, 0, len); 
         downloadedSize += len; 
         final float downloadPercent = 100.0f * (float) downloadedSize/fileSize; 

         if (listener != null) { 
          G.HANDLER.post(new Runnable() { 

           @Override 
           public void run() { 
            listener.onProgressDownload((int) downloadPercent); 
           } 
          }); 
         } 
        } 

        outputStream.close(); 
       } 
       catch (MalformedURLException e) { 
        e.printStackTrace(); 
       } 
       catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 

     }); 
     thread.start(); 
    } 
} 

onprogressdownloadlistener.java

public interface OnProgressDownloadListener { 

    public void onProgressDownload(int percent); 
} 

mainactivity.java

OnProgressDownloadListener listener = new OnProgressDownloadListener() { 

    @Override 
    public void onProgressDownload(final int percent) { 
      Log.i(percent + "%"); 
    } 
}; 
FileDownloader.download(dlFile, G.DIR_APP + "/" + fileName, listener); 

Процент возврата размер загрузки

После начать загрузку и закрыть страницу и перейти на новую страницу, я хочу вернуться на страницу загрузки. как получить доступ к этой теме и слушателю?

Благодаря

+1

Вопрос неясен. – cafebabe1991

+0

После загрузки файла загрузки я иду домой. но я возвращаюсь к странице загрузки, как можно получить доступ к слушателю или потоку для использования из этого? – Mohammad

+0

Вернуться на страницу загрузки? это активность или веб-представление, о котором вы говорите здесь? – cafebabe1991

ответ

0

-Эй вы можете проверить, если процента в слушателем объекта основного вида деятельности получает «100%» значение, то вы можете получить желаемый результат.

+0

Спасибо, но я хочу использовать проценты в каждом месте – Mohammad

+0

Пропускать объект-слушатель повсюду, и вы можете получить Процент, когда вы передали вам объект-слушатель – Hardy

+0

Как передать объект прослушивателя? – Mohammad

Смежные вопросы