【发布时间】:2015-10-04 20:57:52
【问题描述】:
场景:
用户有一个项目列表,比如说 10 个项目。每个项目都有一个操作按钮,它调用一个进行网络调用的 AsyncTask。进行调用时,项目会在任务执行期间显示一个微调器
问题:
有些用户滥用这个,快速按下更多操作按钮,一个接一个,执行网络调用过于频繁。所以我希望能够以某种方式一个接一个地执行每个 AsyncTask,执行之间有 2 秒的延迟。如果可能的话,我不想从 AsyncTask 切换到其他东西。所以基本上如果按下了3个操作按钮,执行应该是:
-> 操作 1 -> 2 秒延迟 -> 操作 2 -> 2 秒延迟 -> 操作 3 -> ....
在 Android 中最好的方法是什么?
乐:
我刚刚意识到一些事情,为了执行我的任务,我运行了以下代码:
myTask = new MyTask();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
myTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} else {
myTask.execute();
}
好吧,我已经使用这段代码很长时间了,我知道在蜂窝之后,如果不使用 Executor,任务就不会再并行执行了。所以似乎只做一个简单的 myTask.execute() 并添加一个 Thread.sleep() 就可以让我的 AsyncTasks 像预期的那样一个接一个地执行。
【问题讨论】:
标签: android android-asynctask queue