运行AsyncTask以产生2个不同的结果

时间:2013-10-24 00:33:37

标签: android android-asynctask

我有一个AsyncTask,它是由用户点击按钮启动的。

其中一个进程正在从zipOutputStream生成一个zip文件。 OnPostExecute被调用到电子邮件结果。

我还要将结果(3个字符串)发送到我的sql表。我已经使用nameValuePairs和httppost使它工作了。我把它放在我的for循环中间,它在构建zip文件时将字符串发送到sql。

问题是它比以前慢了大约5倍。

我该如何解决这个问题?

我考虑过构建一个数组并让我的主要活动在后台进行处理。但我无法弄清楚如何在调用onPostExecute后执行数组列表。我必须在执行return zipfile之前调用该方法。

很抱歉缺少代码,但我试图保护我的来源:(

像我说的那样,一个理想的情况是让用户快速处理zipfile并发送电子邮件结果,而后期sql在后台工作,这样用户甚至不知道它。不是我试图隐藏它,它只是一个后台任务。

1 个答案:

答案 0 :(得分:0)

一些想法(按照我最喜欢的顺序):

  1. 将结果(hashmap,arraylist,dictionary等)排队 异步任务正在运行。当用户未使用该应用程序时批量上传队列。 在onPause执行时触发异步任务。

  2. 将结果(hashmap,arraylist,dictionary等)排队 异步任务正在运行。在第一个异步的“onPostExecute”中 任务剥离另一个异步任务以进行批量上传。

  3. 您是否考虑过使用robospice来处理您的帖子请求?