Android图片上传:使用活动或服务?

时间:2011-04-26 16:47:26

标签: android image service upload android-activity

目前我使用Activity将图像上传到网页,我正在使用AsyncTask,一切都运行良好。我目前使用Activity来实现这一点,基本上活动允许用户输入一些细节,拍照然后提交,显示进度对话框直到收到响应。当在E或G连接上时,整个过程可能非常冗长(超过一分钟)。在收到回复之前,无法完成活动并返回上一个活动(这就是我想要的)。

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

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

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

非常感谢任何帮助/建议。

此致

1 个答案:

答案 0 :(得分:14)

我建议您使用以下设置:

  1. 使用您的活动准备(配置/设置)用户想要做的事情(例如,选择他想要上传的图片和目标文件夹)
  2. 当用户按下“发送”时,调用将执行上传任务的服务。我稍后会注意到这一点的一些优点)
  3. 服务完成后,创建通知以显示结果。您应该使用OnGoingNotification,以便用户知道该文件正在上传(它也可以有一个进度指示器)
  4. 使用服务而不是Activity有一些优点。例如,您不必担心配置更改(例如更改设备的方向),您不会将用户“锁定”在他无事可做的活动中等等。

    上传不需要UI,因此使用活动并不是最好的方法。

    简而言之:使用服务