我有一个AsyncTask,它是由用户点击按钮启动的。
其中一个进程正在从zipOutputStream生成一个zip文件。 OnPostExecute被调用到电子邮件结果。
我还要将结果(3个字符串)发送到我的sql表。我已经使用nameValuePairs和httppost使它工作了。我把它放在我的for循环中间,它在构建zip文件时将字符串发送到sql。
问题是它比以前慢了大约5倍。
我该如何解决这个问题?
我考虑过构建一个数组并让我的主要活动在后台进行处理。但我无法弄清楚如何在调用onPostExecute后执行数组列表。我必须在执行return zipfile之前调用该方法。
很抱歉缺少代码,但我试图保护我的来源:(
像我说的那样,一个理想的情况是让用户快速处理zipfile并发送电子邮件结果,而后期sql在后台工作,这样用户甚至不知道它。不是我试图隐藏它,它只是一个后台任务。答案 0 :(得分:0)
一些想法(按照我最喜欢的顺序):
将结果(hashmap,arraylist,dictionary等)排队 异步任务正在运行。当用户未使用该应用程序时批量上传队列。 在onPause执行时触发异步任务。
将结果(hashmap,arraylist,dictionary等)排队 异步任务正在运行。在第一个异步的“onPostExecute”中 任务剥离另一个异步任务以进行批量上传。
您是否考虑过使用robospice来处理您的帖子请求?