使用Android下载文件,并在ProgressDialog中显示进度我正在尝试编写一个更新的简单应用程序。为此,我需要一个简单的功能,可以下载一个文件,并显示当前进度的ProgressDialog。我知道怎么做ProgressDialog,但我不知道如何显示当前进度以及如何首先下载文件。
4 回答
函数式编程
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
提交
取消
