0

我有一个通过用户按钮单击启动的 AsyncTask。

正在运行的进程之一是从 zipOutputStream 生成 zip 文件。调用 OnPostExecute 以通过电子邮件发送结果。

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

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

我该如何解决这个问题?

我考虑过构建一个数组并让我的主要活动在后台进行处理。但是我不知道如何在调用 onPostExecute 之后让数组列表执行。我必须在执行返回 zipfile 之前调用该方法。

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

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

4

1 回答 1

0

几个想法(按照我最喜欢的顺序):

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

  2. 在异步任务运行时将结果(hashmap、arraylist、字典等)排队。在第一个异步任务的“onPostExecute”中,分拆另一个异步任务以进行批量上传。

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

于 2013-10-24T02:44:51.613 回答