2013-10-24 37 views
0

我有一個AsyncTask,由用戶按鈕點擊啓動。運行一個AsyncTask產生2個不同的結果

正在運行的進程之一是從zipOutputStream生成zip文件。 將OnPostExecute調用到電子郵件結果。

我想也發送結果(3字符串)到我的SQL表。我已經使用nameValuePairs和httppost進行了工作。我把它放在我的for循環的中間,它將字符串發送到sql,因爲它構建了zip文件。

問題是它的速度比以前慢了5倍。

我該如何解決這個問題?

我想過構建一個數組並讓我的主要活動在後臺進行處理。但我無法弄清楚如何讓數組列表在調用onPostExecute後執行。我必須在返回zipfile執行之前調用該方法。

對不起,缺乏代碼,但我嘗試保護我的消息來源:(

就像我說的,理想的情況是zip文件迅速擁有用戶進程和電子郵件結果,而後期在SQL作品背景使用戶甚至不知道它並不是說IM試圖掩蓋它,它只是一個後臺任務

回答

0

一對夫婦的想法(在順序我最喜歡他們):

  1. 排隊結果(hashmap,arraylist,字典等)而您的 異步任務正在運行。當用戶不使用應用程序時批量上傳隊列。 onPause執行時觸發異步任務。

  2. 當您的 異步任務正在運行時,將結果排列(hashmap,arraylist,字典等)。在第一個異步 任務的「onPostExecute」中,關閉另一個異步任務以執行批量上傳。

您是否考慮過使用robospice來處理您的發佈請求?

+0

我繼續前進,在第一次完成後又跑了另一個「沉默」的異想天開。似乎運作良好。不過,我真的很喜歡你的建議,並且會研究它們 – Bignadad

相關問題