安卓图片上传。使用Activity还是服务?

问题描述 投票:8回答:1

目前我使用一个Activity来上传图片到网络上,我使用的是AsyncTask,一切都很顺利。我目前使用一个Activity来实现,基本上这个Activity可以让用户输入一些细节,拍一张照片,然后提交,会显示一个进度对话框,直到收到响应。当使用E或G连接时,整个过程可能会相当长(超过一分钟)。在收到回复之前,不可能完成活动并返回上一个活动(这是我想要的)。

我有什么选择。目前,如果我按下主页按钮,过程工作正常,并继续上传,应用程序可以最小化可编程性?. 我看到这种方法有很多问题,例如如果活动关闭或发生错误。

我唯一能想到的办法是把实际的上传代码移到一个服务上,用活动收集信息,让活动为每次上传启动一个新的服务?然后我可以使用NotificationManager通知用户成功或失败,并在服务中处理重新尝试。

我注意到,当把图片从图库分享到Facebook时,活动会立即关闭,用户会通过通知收到反馈。我假设这种方法使用服务将图片上传到Facebook?

任何帮助建议都将非常感激。

谢谢

android image service upload android-activity
1个回答
15
投票

我建议你使用以下设置。

  1. 用你的活动来准备(configuresetup)用户想要做的事情(例如,选择他想要上传的图片和目标文件夹)。
  2. 当用户按 "发送 "时,调用一个服务来完成上传任务。我在后面会注意到这样做的一些好处)
  3. 当服务完成后,创建一个通知来显示结果。你应该使用OnGoingNotification,让用户知道文件正在上传(也可以有一个进度指示器)。

使用服务而不是Activity有一些优势。例如,你不必担心配置的改变(比如改变设备的方向),你不会把用户 "锁定 "在一个无事可做的活动中,等等。

上传不需要UI,所以使用活动并不是最好的方式。

简而言之,就是 使用服务

© www.soinside.com 2019 - 2024. All rights reserved.