首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从后台服务更新进度的最佳实践[Android]

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

Stack Overflow用户
提问于 2015-03-17 15:19:48
回答 1查看 611关注 0票数 3

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

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

提前谢谢。

注意:我不会停留在我开始下载的活动中,用户可以回到家中,可以开始使用其他应用程序,但只要他回来,他就会收到文件下载/上传的最新进度通知

EN

回答 1

Stack Overflow用户

发布于 2017-05-05 19:52:13

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

但是IntentService有一些限制:

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

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

注意:如果你的应用针对的是Android5.0(API21级),你应该使用JobScheduler来执行后台服务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29093361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档