我有两个活动:SearchActivity(搜索项目)和 DownloadsActivity(显示下载)。如何在 DownloadsActivity 中显示进度条?

发布于 2024-12-27 04:11:15 字数 359 浏览 0 评论 0原文

我正在编写一个简单的下载器应用程序,它有两个活动: SearchActivity:显示您可以根据查询下载的项目列表。按下某个项目应该开始下载该项目,但停留在 SearchActivity 中。按下某个项目当前会运行 AsyncTask 来处理下载逻辑

DownloadsActivity:显示当前下载项目的列表以及每个项目的进度条(带有百分比)。

我已经设置了除进度条之外的所有内容。我想知道正确更新 DownloadsActivity 中的 ProgressBars 的最佳方法是什么。在 SearchActivity 中运行的下载 AsyncTask 中,如果正在查看 DownloadsActivity,如何更新 DownloadsActivity 中的相应进度条?

I'm writing a simple downloader app which has two activities:
SearchActivity: shows a list of items you can download given a query. pressing an item should start downloading the item, but stay in the SearchActivity. Pressing an item currently runs an AsyncTask to handle the downloading logic

DownloadsActivity: shows a list of currently downloading items and ProgressBars (with percent) for each item.

I've set everything up except the ProgessBars. I'm wondering what is the best way to have the ProgressBars in the DownloadsActivity update correctly. Within the download AsyncTask run within the SearchActivity, how do I update the respective progressbar in DownloadsActivity if DownloadsActivity is being viewed?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟若柳尘 2025-01-03 04:11:15

您可能应该使用服务组件来进行下载。这将允许您从服务本身运行 AsyncTasks(或只是单独的线程)。之后,任何活动都可以通过调用服务对象上的某种方法(由您编写)来检索特定下载的状态,该服务对象实际上正在管理所有下载。哦,以同样的方式,您可能想开始下载。

顺便说一句,要从 Activity 中检索 Service 实例对象,您需要先绑定到服务,然后使用 IBinder 接口获取其实例对象。有关服务的更多信息可以在此处找到。

You should likely use the Service component for the downloads purpose. This would allow you to run AsyncTasks (or just separate threads) from within the Service itself. Afterwards, the status of the particular download may be retrieved by any Activity by invoking some method (written by you) on the Service object which, in fact, is managing all the downloads. Oh, and in the same way you may want to start downloads.

BTW, to retrieve Service instance object from within Activity, you need to bind to the service first and then get its instance object using the IBinder interface. Further info on Services could be found here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文