在下载列表页面DownloadListActivity可以看到下载进度的变化,但是我使用对话方式的显示下载进度的时候,进度没有发生变化。经过一步一步的调试最后找到了原因。
DownloadItemViewHolder类里面的
//刷新
public void refresh() {
label.setText(downloadInfo.getFileName());
state.setText(downloadInfo.getState().toString());
if (downloadInfo.getFileLength() > 0) {
progressBar.setProgress((int) (downloadInfo.getProgress() * 100 / downloadInfo.getFileLength()));
} else {
progressBar.setProgress(0);
}
stopBtn.setVisibility(View.VISIBLE);
stopBtn.setText("暂停");
HttpHandler.State state = downloadInfo.getState();
switch (state) {
case WAITING:
stopBtn.setText("暂停");
break;
case STARTED:
stopBtn.setText("暂停");
break;
case LOADING:
stopBtn.setText("暂停");
break;
case CANCELLED:
stopBtn.setText("继续");
break;
case SUCCESS:
stopBtn.setVisibility(View.INVISIBLE);
break;
case FAILURE:
stopBtn.setText("重试");
break;
default:
break;
}
downloadListAdapter.notifyDataSetChanged(); // 添加这行对适配器进行刷新一次。
}
}

本文详细记录了在DownloadListActivity中遇到的下载进度显示不更新的问题及其解决过程。通过逐步调试,最终发现未调用适配器的notifyDataSetChanged方法是导致进度不更新的原因。
522

被折叠的 条评论
为什么被折叠?



