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


问题内容

我们已经为Android(和iOS)编写了一个应用程序,它允许用户将照片上传到我们的REST服务器。我们遇到的问题是,有时用户所在的小区信号糟糕且没有WIFI。因此,我想知道是否有一个预先构建的解决方案,或者是一条推荐的路径来推迟这些上载,直到只有较差的网络选项可用时才推迟。

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

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

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


问题答案:

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

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

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