2015-04-23 52 views
0

有一个执行AsyncTask任何时候都可以启动相同的任务吗?

someTask = new myTask(myActivity.this); 
someTask.execute(someString); 

我可以在myTask的实施onPostExecute执行:

this.execute(someOtherString); 

还是我必须重新创建任务,然后执行它?

+0

这怎么可能,“这”点执行到myTask? – micky

+0

@micky:因为onPostExecute函数驻留在扩展AsyncTask的类中。在他们的例子中,myTask。 – Knossos

+0

所以这里指向myTask吧???谢谢! – micky

回答

4

AsyncTask的一个实例只能运行一次。

您可以创建一个新的AsyncTask实例并执行该实例。你也想小心创建一个无限循环。你需要一个明确的最终条件。

docs

任务只能一次(如果 第二试图执行一个异常将被抛出。)

+0

那么我必须创建MyTask的另一个实例吗?是的,执行次数仅限于4次,所以应该在'onPostExecute'中启动3次其他执行。:) – pheromix

+0

准确地说,只需运行你的(new myTask(myActivity.this))。execute(...);再次。但是必要时多次。尽量确保它是有限的。您应该以某种方式将其运行到任务中的次数传递给它。所以它知道。例如进入构造函数。 – Knossos

相关问题