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

我们已经为Android(和iOS)编写了一个应用程序,并允许用户将照片上传到我们的REST服务器。 我们遇到的问题是,有时用户在可怕的蜂窝信号和没有WIFI的地方。 所以,我想知道是否有一个预先构build的解决scheme,或推荐的path推迟这些上传,直到后来只有平淡的networking选项可用。

现在在Android上我正在使用一个AsyncTask上传捕获的图像的stream表示。 图像的最大尺寸被裁剪为1280,另一方面是方面缩放,所以图像不是很大。

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

我不是正面的iOS应用程序正在利用,但我可以找出是否有帮助。

最好的select是将照片保存到SD卡,并将其path放在数据库中。 这里的数据库就像一个队列。 所以每当用户访问互联网,应用程序可以检查数据库中是否有任何条目,并开始上传。 一旦你上传照片,你从数据库中删除该logging。

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

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

在iOS我使用ASIHTTPRequest ,但目前你可以find其他解决scheme( MKNetworkKit )。 我做了一个完全像你在做什么的应用程序,所以我做的是:

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

让我们想象一下,用户在队列中放了20张照片,然后开始这个过程,在一天结束的时候,他可以再次检查什么是成功,什么不成功。 当然,他可以重新发送失败的东西。