Android(或iOS) - 图像上传队列

时间:2012-07-05 14:20:49

标签: java android ios rest file-upload

我们为Android(和iOS)编写了一个应用程序,它允许用户将照片上传到我们的REST服务器。我们遇到的问题是,有时用户处于可怕的小区信号并且没有WIFI的地方。所以,我想知道是否有预建的解决方案或建议的路径来推迟这些上传,直到以后只有可用的网络选项不足。

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

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

我对iOS应用程序的利用率并不满意,但我可以看出它是否有帮助。

2 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:2)

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

  1. 检查是否有互联网,如果是,则继续,否则停止。
  2. 尝试发送一张照片,如果成功则转到下一张照片,否则将照片留在队列中并转到下一张照片。
  3. 重复过程。
  4. 让我们假设用户在队列上放了20张照片,然后开始这个过程,在一天结束时,他可以再次检查成功和未成功的内容。当然,他可以首先重新发送失败的东西。