我有活动A,其中包含一个下载按钮。按下下载按钮时,会出现一个进度条,并在下载文件时更新。我使用服务下载文件并使用ResultReceiver
更新UI。
new ResultReceiver(new Handler()) {
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
super.onReceiveResult(resultCode, resultData);
if (resultCode == DownloadService.UPDATE_PROGRESS) {
mBookAdapter.setDownloadProgress(book,
resultData.getInt("progress"));
}
}
setDownloadProgress
方法调用updateProgressView
来实际更新进度条。
updateProgressView
public void updateProgressView(int position, int progress) {
((ProgressBar) convertView.findViewById(R.id.progressbar_book_download))
.setProgress(progress);
}
我遇到的问题是,如果我在下载运行时退出活动A,并返回活动A,则进度条无法保持正确的下载状态。
构建我的活动,服务等的最佳方法是什么,以便即使我重新进入我的活动时也更新进度条?
我意识到我在重新输入时会创建一个新活动,但我的服务可能会引用我的旧活动,而ResultReceiver
中的所有更新都会更新我的旧活动。