2

我们为 Android(和 iOS)编写了一个应用程序,它允许用户将照片上传到我们的 REST 服务器。我们遇到的问题是,有时用户所在的地方信号很差,没有 WIFI。所以,我想知道是否有预建的解决方案,或者推荐的路径来推迟这些上传,如果只有乏味的网络选项可用。

现在在 Android 上,我正在使用 AsyncTask 上传捕获图像的流表示。图像的最大尺寸被裁剪为 1280,另一个是纵横比缩放,因此图像不是很大。

我想用户可能长达 2 小时没有信号,所以它不需要每分钟都尝试上传。此外,我认为可能有多个上传,因此需要某种队列。

我不肯定 iOS 应用程序正在利用什么,但我可以确定它是否有帮助。

4

2 回答 2

6

最好的选择是将照片保存到 SD 卡并将其路径放入数据库中。这里的数据库就像一个队列。因此,只要用户可以访问互联网,应用程序就可以检查数据库中是否有任何条目并开始上传。上传照片后,您将从数据库中删除该记录。

现在,就上传而言,我建议在服务中进行,而不是在 AsyncTask 中进行。这样,您可以使用 AlarmManager 定期调用服务并检查是否有要上传的内容。

我在我的一个应用程序中使用了这种方法,但用于文档。它就像一个魅力。希望有帮助。

于 2012-07-05T14:26:54.010 回答
2

在 iOS 中,我使用了 ASIHTTPRequest,但目前您可以找到其他解决方案(MKNetworkKit)。我做了一个与您所做的完全一样的应用程序,所以我所做的是:

  1. 检查是否有网络,如果有则继续,否则停止。
  2. 尝试发送一张照片,如果成功则转到下一张,否则将照片留在队列中并转到下一张。
  3. 重复过程。

让我们假设用户将 20 张照片放在队列中,然后开始该过程,在一天结束时,他可以再次检查哪些成功,哪些没有。当然,他可以重新发送最初失败的内容。

于 2012-07-05T14:26:35.153 回答