使用Android下载文件,并在ProgressDialog中显示进度我正在尝试编写一个更新的简单应用程序。为此,我需要一个简单的功能,可以下载一个文件,并显示当前进度的ProgressDialog。我知道怎么做ProgressDialog,但我不知道如何显示当前进度以及如何首先下载文件。
4 回答
![?](http://img1.sycdn.imooc.com/54584f3100019e9702200220-100-100.jpg)
函数式编程
TA贡献1807条经验 获得超9个赞
是的,上面的代码可以正常工作。但是如果你正在更新你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; }}
添加回答
举报
0/150
提交
取消