如何在重新进入活动时从下载服务更新进度条?

时间:2016-04-03 16:52:22

标签: android android-layout android-service

我有活动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中的所有更新都会更新我的旧活动。

0 个答案:

没有答案