gpt4 book ai didi

android - 从后台服务更新进度的最佳实践 [Android]

转载 作者:行者123 更新时间:2023-12-05 07:55:57 28 4
gpt4 key购买 nike

抱歉,如果我再次提问,但我没有找到与该问题相关的任何信息。

我正在后台服务中下载/上传文件。我想通过此服务发送文件下载/上传的进度。我知道的一种方法是每 5% 或 10% 的文件下载/上传发送一次广播。另一种是将Activity与Service绑定(bind),实现一个接口(interface),Service会通知绑定(bind)的Activity,哪个文件已经下载/上传。不知道哪种方法好。如果你有其他好的方法,请与我分享。最多可以同时进行 5 个文件下载/上传。

提前致谢。

注意:我没有停留在我开始下载的 Activity 中,用户可以回到家,可以开始使用其他应用程序,但是无论何时他回来,他都会收到文件下载/上传更新进度的通知

最佳答案

最好的解决方案是使用 IntentServiceIntentService 类为在单个后台线程上运行操作提供了一个简单的结构。这允许它处理长时间运行的操作,而不会影响用户界面的响应能力。此外,IntentService 不受大多数​​用户界面生命周期事件的影响,因此它会在会关闭 AsyncTask 的情况下继续运行

但是 IntentService 有一些限制:

  • 它不能直接与您的用户界面交互。要将其结果放入 UI,您必须将它们发送到 Activity。
  • 工作请求按顺序运行。如果一个操作正在 IntentService 中运行,并且您向它发送了另一个请求,该请求将等待第一个操作完成。
  • 在 IntentService 上运行的操作不能被中断。

但是,在大多数情况下,IntentService 是执行简单后台操作的首选方式。

注意:如果您的应用以 Android 5.0(API 级别 21)为目标平台,您应该使用 JobScheduler 来执行后台服务。

关于android - 从后台服务更新进度的最佳实践 [Android],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29093361/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com