猿问

使用Android下载文件,并在ProgressDialog中显示进度

使用Android下载文件,并在ProgressDialog中显示进度

我正在尝试编写一个更新的简单应用程序。为此,我需要一个简单的功能,可以下载一个文件,并显示当前进度ProgressDialog。我知道怎么做ProgressDialog,但我不知道如何显示当前进度以及如何首先下载文件。



一只斗牛犬
浏览 1713回答 4
4回答

函数式编程

是的,上面的代码可以正常工作。但是如果你正在更新你progressbar的onProgressUpdate内容Asynctask 而你按下后退按钮或完成你的活动就会AsyncTask失去你的用户界面。当你回到你的活动时,即使下载是在后台运行,你也会看到没有进度条更新。因此,OnResume()尝试运行一个类似于runOnUIThread计时器任务的线程,该任务progressbar使用从AsyncTask正在运行的背景更新的值来更新你的任务。private void updateProgressBar(){     Runnable runnable = new updateProgress();     background = new Thread(runnable);     background.start();}public class updateProgress implements Runnable {     public void run() {         while(Thread.currentThread()==background)             //while (!Thread.currentThread().isInterrupted()) {             try {                 Thread.sleep(1000);                  Message msg = new Message();                 progress = getProgressPercentage();                         handler.sendMessage(msg);             } catch (InterruptedException e) {                 Thread.currentThread().interrupt();             } catch (Exception e) {         }     }}private Handler handler = new Handler(){     @Override     public void handleMessage(Message msg) {         progress.setProgress(msg.what);     }};当您的活动不可见时,不要忘记销毁线程。private void destroyRunningThreads() {     if (background != null) {         background.interrupt();         background=null;     }}

达令说

我建议你使用我的Project Netroid,它基于Volley。我添加了一些功能,如多事件回调,文件下载管理。这可能会有所帮助。
随时随地看视频慕课网APP

相关分类

Java
Android
我要回答