2012-07-05 73 views
2

我們已經爲Android(和iOS)編寫了一個應用程序,它允許用戶將照片上傳到我們的REST服務器。我們遇到的問題是,有時候用戶處於可靠的蜂窩信號並且沒有WIFI的地方。所以,我想知道是否有預先構建的解決方案,或者推薦使用推薦路徑來推遲這些上傳,直到後來只有可用的網絡選項不佳。Android(或iOS) - 圖像上傳隊列

現在在Android上我正在使用AsyncTask上傳捕獲圖像的流表示形式。圖像的最大尺寸裁剪爲1280,另一方面是比例縮放,因此圖像不是很大。

用戶可能沒有信號長達2小時我想象,所以它不需要嘗試每分鐘上傳。此外,可能會有多個上傳,所以我認爲需要某種類型的隊列。

我不是很積極的iOS應用程序正在利用,但我可以找出它是否有幫助。

回答

6

最好的選擇是將照片保存到SD卡並將其路徑放到數據庫中。這裏的數據庫就像一個隊列。所以只要用戶訪問互聯網,應用程序就可以檢查數據庫中是否有條目並開始上傳。一旦你上傳照片,你從數據庫中刪除該記錄。

現在,就上傳而言,我建議在服務中使用它,而不是AsyncTask。這樣,您可以使用AlarmManager定期調用服務,並檢查是否有要上傳的內容。

我在我的一個應用程序中使用了這種方法,但是用於文檔。它像一個魅力。希望有所幫助。

2

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

  1. 檢查是否有互聯網,如果是的話繼續,否則停止。
  2. 嘗試發送一張照片,如果成功轉到下一張照片,請將照片放在隊列中並轉到下一張照片。
  3. 重複過程。

讓我們想象一下,用戶在隊列中放了20張照片,然後開始這個過程,在一天結束時他可以再次檢查什麼是成功的,哪些沒有。當然,他可以重新發送失敗的東西。